0

以下程序接受用户的两个输入(逗号分隔):

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 的帮助下修复了该问题。是的,从那时起,检查的东西就非常酷且有用!

4

2 回答 2

3

您的输入中可能有一个尚未删除的换行符。处理来自文件的数据时,请确保chomp输入任何值。更好的是调用stripwhich 将删除前导和尾随空格。

gets.chomp.split(',')

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

puts code_2.inspect
# "TYP\n"

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

于 2012-12-10T16:35:25.490 回答
2

您在字符串末尾有一个换行符,只需将其剥离:

input_codes = gets.strip.split(',')
于 2012-12-10T16:34:40.537 回答