Answers:
您需要在您的gsub中使用"\n"
not '\n'
。不同的引号具有不同的行为。
双引号"
允许字符扩展和表达式内插,即。它们使您可以使用转义的控制字符\n
来表示其真实值(在本例中为newline),并允许使用,#{expression}
这样您就可以将变量以及几乎所有喜欢的ruby表达式编织到文本中。
另一方面,单引号会'
按字面意义对待字符串,因此没有扩展,替换,内插或其他功能。
在这种情况下,最好使用.delete
or或.tr
String方法删除换行符。
tr
是一个更好的选择,但是正如我所说,我认为最好在回答时指出单引号,双引号的区别。
当您想删除一个字符串而不是替换它时,可以使用String#delete
(或其等效的mutator String#delete!
),例如:
x = "foo\nfoo"
x.delete!("\n")
x
现在等于“ foofoo”
在这种特定情况下,由于您实际上并未用任何东西替换字符串,String#delete
因此更具可读性gsub
。
delete
不是破坏性的,如此处所示。它返回一个新字符串。
Ruby的使用chomp
或strip
功能:
"abcd\n".chomp => "abcd"
"abcd\n".strip => "abcd"
strip
仅删除开头