Dies funktioniert nicht: r n Ersetzen mit n
scala> """one\r\ntwo\r\nthree\r\nfour""".replace("\r\n", "\n")
res1: String = one\r\ntwo\r\nthree\r\nfour
Wie die in Scala tun?
Gibt es einen eher idiomatischen Weg, anstatt Ersatz zu verwenden?
Dies funktioniert nicht: r n Ersetzen mit n
scala> """one\r\ntwo\r\nthree\r\nfour""".replace("\r\n", "\n")
res1: String = one\r\ntwo\r\nthree\r\nfour
Wie die in Scala tun?
Gibt es einen eher idiomatischen Weg, anstatt Ersatz zu verwenden?
Das Problem ist, dass """
Anführungszeichen nicht Escape-Sequenzen erweitert. Drei verschiedene Ansätze:
"
Anführungszeichen, um Sequenzen zu behandeln zu entkommen richtig: "one\r\ntwo"
;s
Zeicheninterpolator, achten Sie darauf, dass dies zu unerwarteten Ersetzungen führt: s"""one\r\ntwo"""
;treatEscapes
direkt an, um die Escape-Sequenzen in Ihrer Zeichenfolge zu erweitern: StringContext.treatEscapes("""one\r\ntwo""")
.Siehe auch this earlier question.
versuchen diese
"""one\r\ntwo\r\nthree\r\nfour""".replace("\\r\\n", "\n")
\
als escape
charater innerhalb Zeichenfolge behandelt wird, so müssen Sie die compiler
, dass ihr kein escape
Charakter, sondern ein string
erzählen.
war die Antwort hilfreich? –
'" "" \ r \ n "" "' ist sehr verschieden von '" \ r \ n "'. –
@ n.m. Yepp, ich habe es gerade bemerkt. Ich akzeptiere das als Antwort – dangonfast