【问题标题】:Taking input from user in console in ruby在 ruby​​ 的控制台中接受用户的输入
【发布时间】:2012-12-10 16:30:29
【问题描述】:

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

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

【问题讨论】:

    标签: ruby console user-input


    【解决方案1】:

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

    gets.chomp.split(',')
    

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

    puts code_2.inspect
    # "TYP\n"
    

    这可能会更早地暴露问题。但是,inspect 可能会在具有自己的自定义发射器的自定义类上产生误导。它并不总是值得信任的,但它通常是一个不错的起点。

    【讨论】:

      【解决方案2】:

      你在字符串末尾有一个换行符,把它去掉:

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

      【讨论】:

        猜你喜欢
        • 2012-10-24
        • 2018-10-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-06
        • 1970-01-01
        • 2011-01-23
        • 2020-07-23
        相关资源
        最近更新 更多