转义puts输出中的换行符

4
在Ruby 1.8.7的IRB中,我有一组带有换行符的字符串。当这些换行符被输出时,我想在我的字符串中明确地看到\r\n字符。是否有一种方法告诉puts转义这些字符,或者类似于puts的方法可以做到我想要的效果?
请注意,直接评估每个字符串并不令人满意,因为我想能够做到这样:
=> mystrings.each { |str| puts str.magical_method_to_escape_special_chars }
This is\na string in mystrings.
This is another\n\rstring.

而且不想这样做:

=> mystrings[0]
"This is\na string in mystrings."
=> mystrings[1]
"This is another\n\rstring."
...
=> mystrings[1000]
"There are a lot of\n\nstrings!"
2个回答

6

我可以使用string#dump方法:

=> mystrings.each { |str| puts str.dump }
This is\na string in mystrings.
This is another\n\rstring.

根据 Ruby String文档string#dump

生成一个版本的字符串,其中所有非打印字符都替换为\nnn表示法,所有特殊字符都被转义。


2
1.8.7 :001 > s = "hi\nthere"
 => "hi\nthere" 
1.8.7 :002 > p s
"hi\nthere"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接