【问题标题】:Ruby -- 'gets' adds newline character [closed]Ruby - 'gets' 添加换行符 [关闭]
【发布时间】:2013-07-14 04:29:20
【问题描述】:

这是我写的:

print "Enter your name:"
name = gets
puts "Hello #{name}. Please to meet you." 

结果是这样的:

Hello Moemen
. Pleased to meet you
  • 为什么变量后面的字符串的其余部分在另一行继续?我希望它是 "Hello Moemen. Pleased to meet you." 我错过了什么吗?

  • 我正在使用 sublime text 2,我无法获得 gets 方法让我输入数据;它只是在控制台中打印结果,而不给我输入任何内容的机会。有什么想法吗?

【问题讨论】:

标签: ruby gets


【解决方案1】:

当您使用gets 时,输入后面将跟一个换行符,因此您需要在打印出来之前去掉换行符。

print "Enter your name:"
name = gets.chomp
puts "Hello #{name}. Pleased to meet you."

这应该可以解决您的问题。

【讨论】:

  • 谢谢大家。请关闭问题。我得到了我需要的一切
【解决方案2】:

您报告的事情不会发生。这不可能是真的。当你通过gets 得到一个字符串时,你可能会得到一个类似"Moemen\n" 的字符串。由于输入由"\n" 分隔,因此字符串的末尾有它。当它被插入到"Hello #{name}. Please to meet you." 中时,你会得到:

Hello Moemen
. Please to meet you.

但不是

Hello Moemen
. Pleased to meet you

在您报告时。这不会发生。

为了得到"Hello Moemen. Pleased to meet you.",需要将字符串改为"Hello #{name.chomp}. Pleased to meet you."

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多