在ruby中从控制台中的用户获取输入

在ruby中从控制台中的用户获取输入,ruby,console,user-input,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 对于这两种情况,它都应该打

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

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的帮助下修复了此问题。是的,检查这件事从那时起就非常酷和有用

字符串末尾有一个换行符,只需将其去掉:

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

在字符串的末尾有一个换行符,只需去掉它:

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

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

gets.chomp.split(',')
无论何时尝试进行诊断,都必须显示“不可见”字符:

puts code_2.inspect
# "TYP\n"

这可能会更早地暴露问题<代码>检查可能会误导具有自己自定义发射器的自定义类。它并不总是可信的,但通常是一个好的起点。

你的输入中可能有一行新行,但你还没有删除。处理文件中的数据时,请确保
chomp
任何输入值。更好的方法是调用
strip
,它将删除前导空格和尾随空格

gets.chomp.split(',')
无论何时尝试进行诊断,都必须显示“不可见”字符:

puts code_2.inspect
# "TYP\n"
这可能会更早地暴露问题<代码>检查可能会误导具有自己自定义发射器的自定义类。它不能总是被信任的,但它通常是一个好的开始