在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"
这可能会更早地暴露问题<代码>检查可能会误导具有自己自定义发射器的自定义类。它不能总是被信任的,但它通常是一个好的开始