【问题标题】:Replace \r\n with \n将 \r\n 替换为 \n
【发布时间】:2017-06-14 06:39:44
【问题描述】:

这不起作用:

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

如何在 Scala 中做到这一点?

有没有更惯用的方法来代替使用替换?

【问题讨论】:

  • """\r\n""""\r\n" 非常不同。
  • @n.m.是的,我刚刚意识到这一点。我会接受这个答案

标签: scala carriage-return


【解决方案1】:

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

  1. 使用单个 " 引号以正确处理转义序列:"one\r\ntwo";
  2. 使用 s 字符串插值器,请小心遵循此方法,因为这可能会导致意外替换:s"""one\r\ntwo""";
  3. 直接调用treatEscapes 以扩展字符串中的转义序列:StringContext.treatEscapes("""one\r\ntwo""")

另请参阅this earlier question

【讨论】:

    【解决方案2】:

    试试这个

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-16
      • 1970-01-01
      • 2013-03-22
      • 2015-07-01
      • 1970-01-01
      • 2020-05-24
      • 2010-09-07
      • 1970-01-01
      相关资源
      最近更新 更多