如何在Ruby中打印转义字符?

时间:2018-02-07 07:18:45

标签: ruby escaping ascii

我有一个包含转义字符的字符串:

word = "x\nz"

我希望将其打印为x\nz

然而,puts word给了我:

x
z

如何让puts word输出x\nz而不是创建新行?

2 个答案:

答案 0 :(得分:3)

使用String#inspect

puts word.inspect #=> "x\nz"

或只是p

p word #=> "x\nz"

答案 1 :(得分:0)

  

我有一个包含转义字符的字符串:

不,你没有。你有一个包含换行符的字符串。

  

如何让puts word输出x\nz而不是创建新行?

最简单的方法是首先以您想要的格式创建字符串:

word = 'x\nz'
# or 
word = "x\\nz"

如果无法做到这一点,您可以按照自己的方式翻译字符串:

word = word.gsub("\n", '\n')
# or
word.gsub!("\n", '\n')

你可能想做类似

的事情
puts word.inspect
# or
p word

不要那样做! #inspect不保证具有任何特定格式。它唯一的要求是它应该返回一个适合调试的人类可读字符串表示。你永远不应该依赖#inspect的内容,你应该依赖的唯一内容是,它是人类可读的。