以下程序从用户处获取两个输入(以逗号分隔):
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
?我错过了什么?
答案 0 :(得分:3)
您输入中的换行符可能没有被删除。处理文件中的数据时,请确保chomp
任何输入值。更好的方法是调用strip
,这将删除前导和尾随空格。
gets.chomp.split(',')
每当尝试进行诊断时,显示“隐形”字符非常重要:
puts code_2.inspect
# "TYP\n"
这可能会更快地暴露出这个问题。但是,对于具有自己的自定义发射器的自定义类,inspect
可能会产生误导。它并不总是值得信赖,但它通常是一个好的起点。
答案 1 :(得分:2)
你在字符串的末尾有一个换行符,只需删除它:
input_codes = gets.strip.split(',')