在ruby中使用控制台中的用户输入

时间:2012-12-10 16:30:30

标签: ruby console user-input

以下程序从用户处获取两个输入(以逗号分隔):

puts "Enter the code"
input_codes = gets.split(',')
puts "your given code is: "

code_1 = input_codes[0]
code_2 = input_codes[1]

puts code_1=='GEO'
puts code_2=='TYP'

输出如下:

Enter the code
> GEO,TYP

true
false

它应该为这两种情况打印true,对吧?为什么在最后一种情况下打印false?我错过了什么?

编辑:是的,我开始时缺少一个额外的换行符。在tadman的帮助下解决了这个问题。是的,从那以后,检查的事情非常酷且有用!

2 个答案:

答案 0 :(得分:3)

您输入中的换行符可能没有被删除。处理文件中的数据时,请确保chomp任何输入值。更好的方法是调用strip,这将删除前导和尾随空格。

gets.chomp.split(',')

每当尝试进行诊断时,显示“隐形”字符非常重要:

puts code_2.inspect
# "TYP\n"

这可能会更快地暴露出这个问题。但是,对于具有自己的自定义发射器的自定义类,inspect可能会产生误导。它并不总是值得信赖,但它通常是一个好的起点。

答案 1 :(得分:2)

你在字符串的末尾有一个换行符,只需删除它:

input_codes = gets.strip.split(',')