在Ruby中工作,我正在尝试这样做,当我输入一行输入时,它会读取它并将它与一些if语句匹配。
input_stream = $stdin
input_stream.each_line do |line|
puts line
if line == "a"
puts "test 1"
end
if line == "b"
puts "test 2"
end
end
但是当我运行它并输入“a”或“b”时,这就是输出
a
a
b
b
它识别我输入了a和b,并将其打印回给我,但是if语句没有按预期运行。这有什么问题?
答案 0 :(得分:3)
Ruby在使用each_line
时维护换行符。最简单的解决方案是使用chomp
删除它。
input_stream = $stdin
input_stream.each_line do |line|
line.chomp! # The new helpful line
puts line
if line == "a"
puts "test 1"
end
if line == "b"
puts "test 2"
end
end
答案 1 :(得分:0)
因为如果你写这行,行末尾有\ n字符,它将起作用:
input_stream = $stdin
input_stream.each_line do |line|
puts line
if line.chomp == "a"
puts "test 1"
end
if line.chomp == "b"
puts "test 2"
end
end