如何在scala中撤消字符串?

pet*_*bel 8 java json scala escaping

我发现很多关于转义字符串的帖子,但没有关于转义字符串的消息.

使用Scala Play,我的控制器接受JSON作为请求.我通过以下方式从中提取字符串:

val text: play.api.libs.json.JsValue = request.body.\("source")
Run Code Online (Sandbox Code Playgroud)

如果我打印text.toString我得到例如

"Hello\tworld\nmy name is \"ABC\""
Run Code Online (Sandbox Code Playgroud)

如何将此转义文本转换为普通文本?结果应该是这样的

Hello    world
my name is "ABC"
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已经尝试过如下方法:

replaceAll("""\\t""", "\t")
Run Code Online (Sandbox Code Playgroud)

但是,创建所有可能的转义规则可能过于复杂.所以我的问题是:如何轻松地做到这一点?可能使用标准库.Java解决方案也是可能的.

Flo*_*own 19

有一些插值允许您将字符串转换为格式化和/或转义序列.这些插值类似于s"..."f"..."StringContext中处理.

它还提供反向功能:

val es = """Hello\tworld\nmy name is \"ABC\""""
val un = StringContext treatEscapes es
Run Code Online (Sandbox Code Playgroud)

  • 我实际上是指这个downvoter而没有留下任何评论.我很高兴能帮助你. (2认同)