Scala替换“by”

问题描述 投票:0回答:3

如何用\“替换双引号:

val s = """I am "groot"."""

所以输出将是“”“我是\”groot \“。”“”

我试过但没有运气

s.replaceAll('"', '\"')
scala replace double-quotes
3个回答
2
投票

所以@Tanjin提供了正确的解决方案。但是,您的解决方案不起作用的原因是这样的。

s.replaceAll('"', '\"')

反斜杠在字符串和字符文字中具有特殊含义,因此'\"'只编译为引号字符。在REPL中运行会告诉你这个

scala> '\"'
res2: Char = "

同时,使用三引号字符串会禁用此行为。

scala> """\""""
res3: String = \"

1
投票

试试这种方式:

s.replaceAll("\"", "\\\\\"")

1
投票

这是如何运作的:

s.replace(""""""", """\"""")
© www.soinside.com 2019 - 2024. All rights reserved.