用\ n替换\ r \ n

时间:2017-06-14 06:39:44

标签: scala carriage-return

这不起作用:

scala> """one\r\ntwo\r\nthree\r\nfour""".replace("\r\n", "\n")
res1: String = one\r\ntwo\r\nthree\r\nfour

如何在Scala中执行此操作?

是否有更惯用的方法,而不是使用替换?

2 个答案:

答案 0 :(得分:0)

问题是"""引号不会扩展转义序列。三种不同的方法:

  1. 使用单个"引号以正确处理转义序列:"one\r\ntwo";
  2. 使用s字符串插补器,请谨慎使用此方法,因为这可能会导致意外替换:s"""one\r\ntwo""";
  3. 直接致电treatEscapes以展开字符串中的转义序列:StringContext.treatEscapes("""one\r\ntwo""")
  4. 另请参阅this earlier question

答案 1 :(得分:0)

试试这个

"""one\r\ntwo\r\nthree\r\nfour""".replace("\\r\\n", "\n")

\在字符串中被视为escape字符,因此您需要告诉compiler它不是escape字符而是string。< / p>