Home > Mobile >  Match & includes? method
Match & includes? method

Time:04-20

My code is about a robot who has 3 posible answers (it depends on what you put in the message)

So, inside this posible answers, one depends if the input it's a question, and to prove it, i think it has to identify the "?" symbol on the string.

May i have to use the "match" method or includes?

This code it's gonna be include in a loop, that may answer in 3 possible ways.

Example:

puts "whats your meal today?"
answer = gets.chomp 
answer.includes? "?"

or 
answer.match('?')

CodePudding user response:

Take a look at String#end_with? I think that is what you should use.

Also, please take a look at How to ask to avoid having your questions downvoted.

CodePudding user response:

Use String#match? Instead

String#chomp will only remove OS-specific newlines from a String, but neither String#chomp nor String#end_with? will handle certain edge cases like multi-line matches or strings where you have whitespace characters at the end. Instead, use a regular expression with String#match?. For example:

print "Enter a meal: "
answer = gets.chomp
answer.match? /\?\s*\z/m

The Regexp literal /\?\s*\z/m will return true value if the (possibly multi-line) String in your answer contains:

  1. a literal question mark (which is why it's escaped)...
  2. followed by zero or more whitespace characters...
  3. anchored to the end-of-string with or without newline characters, e.g. \n or \r\n, although those will generally have been removed by #chomp already.

This will be more robust than your current solution, and will handle a wider variety of inputs while being more accurate at finding strings that end with a question mark without regard to trailing whitespace or line endings.

  • Related