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 并且输出将一样..
我正在接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 并且输出将一样..