2017-06-14 159 views
0

這不起作用:替換 r n與 n

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

如何做到這一點在Scala呢?

有沒有更習慣的做法,而不是使用替換?

+1

''「」「\ r \ n」「」'與'\ r \ n「'有很大不同。 –

+0

@ n.m。葉普,我剛剛意識到這一點。我會接受,作爲回答 – dangonfast

回答

0

問題是"""引號不會擴展轉義序列。三種不同的方法:

  1. 使用單引號"爲了正確對待轉義序列:"one\r\ntwo";
  2. 使用s字符串插值器,小心遵循此方法,因爲這可能會導致意外的替換:s"""one\r\ntwo""";
  3. 直接調用treatEscapes可以擴展字符串中的轉義序列:StringContext.treatEscapes("""one\r\ntwo""")

另請參閱this earlier question

0

試試這個

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

\作爲字符串中escape系統字符處理,所以你需要告訴compiler,它不是一個escape字符,但一個string

+0

有幫助嗎? –