如何在Kotlin中将字符串传递给没有转义符号的var?

时间:2017-11-16 08:09:51

标签: kotlin android-studio-3.0

我希望将字符串{"name":"My Settings 1"}传递给var aa

我必须使用代码var aa=" {\"name\":\"My Settings 1\"} "

来编写它

当我使用Android Studio 3.0时,Kotlin有一个简单的方法吗?

我知道<![CDATA[...]]>适合XML内容

2 个答案:

答案 0 :(得分:7)

你可以在Kotlin做的最简单的事情就是使用带有三引号的raw strings

val a = """{"name":"My Settings 1"}"""

对于工具解决方案而不是语言解决方案(因此这在Kotlin和Java中都有效),您可以在Android Studio或IntelliJ中使用language injection

  1. 创建一个字符串,并使用Alt + Enter调用其上的意图操作。选择Inject language or reference,然后选择JSON

    Inject language or reference

    JSON

  2. 再次使用Alt + Enter,然后选择Edit JSON Fragment

    Edit JSON Fragment

  3. 在底部显示的面板中编辑原始JSON,IntelliJ将自动将其内容镜像到字符串中,转义任何必须转义的字符。

    Screenshot of the JSON fragment editor

答案 1 :(得分:2)

在常规String中转义特殊字符,就像在你的例子中一样,是Java和Kotlin必须要做的事情:

"{\"name\":\"My Settings 1\"}"

Kotlin提供原始字符串来逃避这一点。在这些原始String中,没有必要转义特殊字符,它显示以下内容:

 """{"name":"My Settings 1"}"""

原始字符串由三重引号(""")分隔。 阅读文档here