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

时间:2015-11-08 20:10:43

标签: ruby string string-comparison

我只是拿起Ruby。我试图在If语句中比较两个字符串,如下所示:

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

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

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

我试过三次'===',input.eql?,input.equal? - 没有输出

如果我使用宇宙飞船,'< =>',无论输入等于'a',它都能正常工作。

我应该如何比较字符串?

谢谢!

3 个答案:

答案 0 :(得分:4)

可能有一个新行:

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

希望这有帮助!

答案 1 :(得分:2)

如上所述,请使用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并且输出将是相同的。< / p>

答案 2 :(得分:1)

会自动为输入添加换行符。

我们需要将其切换为

input = gets.chomp

将提供没有新行的值..