0

在 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 语句没有按预期运行。这里有什么问题?

4

2 回答 2

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
于 2013-10-21T05:34:19.927 回答
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
于 2013-10-21T05:35:28.457 回答