我只是拿起Ruby。我试图在If语句中比较两个字符串,如下所示:
#get user input
input = gets #type in 'a'
#compare
if input == "a"
puts "a!"
end
当我输入'a'时,这不会输出任何内容。
我试过三次'===',input.eql?,input.equal? - 没有输出
如果我使用宇宙飞船,'< =>',无论输入等于'a',它都能正常工作。
我应该如何比较字符串?
谢谢!
答案 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
将提供没有新行的值..