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

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

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

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

你报告的内容不会发生。 这不可能是真的。 当你通过gets得到一个字符串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."