Ruby: 将用户输入与字符串进行比较

Ruby: Comparing user input with string

我正在接Ruby。我正在尝试比较 If 语句中的两个字符串,如下所示:

#get user input
input = gets #type in 'a'

#compare
if input == "a"
    puts "a!"
end

当我输入 'a' 时,这不会输出任何内容。

我试过三元组 '===', input.eql?, input.equal? - 无输出

如果我使用宇宙飞船“<=>”,无论输入等同于 'a',它都会工作。

我应该如何比较字符串?

谢谢!

可能有一个新行:

您可以使用: input.chomp.eql? 'a'

希望对您有所帮助!

gets 会自动在输入中添加换行符。

我们需要将其切换为

input = gets.chomp

这将提供没有新行的值..

如上所述,使用input = gets.chomp

.chomp会在gets之后自动换行 例如:

input = gets #type Ruby 

 if input == "Ruby"   
   puts "I love Ruby!"
 else   
   puts "Invalid input"
 end

对于此示例,输出将为 #=> "I love Ruby\n"

现在如果你使用 .chomp:

input = gets.chomp #type Ruby

if input == "Ruby"
  puts "I love Ruby!"
else
  puts "Invalid input"
end

此输出与上面相同,但没有 \n

同样在 Ruby 中,您可以使用 if input =~ /a/i 这将使包含 a 的任何内容都有效,换句话说,您可以键入 a、A 并且输出将一样..