在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!"
答案 0 :(得分:2)
1.8.7 :001 > s = "hi\nthere"
=> "hi\nthere"
1.8.7 :002 > p s
"hi\nthere"
答案 1 :(得分:2)
我可以使用string#dump
方法:
=> mystrings.each { |str| puts str.dump }
This is\na string in mystrings.
This is another\n\rstring.
根据Ruby documention for String,string#dump
生成一个str版本,替换为所有非打印字符 \ nnn表示法和所有特殊字符都逃脱了。