Ruby - '得到'添加换行符

时间:2013-07-16 05:51:34

标签: ruby gets

我写了这个:

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方法让我输入数据;它只是在控制台中输出结果,而没有让我有机会输入任何东西。有什么想法吗?

2 个答案:

答案 0 :(得分:6)

当您使用gets时,输入后面会跟一个换行符,因此您需要在打印前删除换行符。

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

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

答案 1 :(得分:1)

您报告的内容不会发生。这不可能是真的。当您按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."