字符串中的美元符号字符

Dollar Sign Character in Strings

在字符串文字中添加 $ 字符的最简洁方法是什么?

到目前为止我想出的最好的解决方案是 """${"$"}...""",我觉得它很难看。

您似乎没有正确粘贴代码,因为您只有 3 个双引号。

无论如何,最好的方法就是像下面这样转义美元符号:

"$"

要转义字符串文字中的美元符号,请使用反斜杠字符:

"$"

要在 raw 字符串文字 ("""...""") 中转义它,您提供的解决方法目前确实是最简单的解决方案。错误跟踪器中存在一个问题,您可以给它加注星标 and/or 投票:KT-2425.

在当前的 Kotlin 1.0(和测试版)中 你可以用反斜杠转义 "$"

这次通过的单元测试证明了案例:

@Test public fun testDollar() {
    val dollar = '$'

    val x1 = "$100.00"
    val x2 = "${"$"}100.00"
    val x3 = """${"$"}100.00"""
    val x4 = "${dollar}100.00"
    val x5 = """${dollar}100.00"""

    assertEquals(x5, x1)
    assertEquals(x5, x2)
    assertEquals(x5, x3)
    assertEquals(x5, x4)

    // you cannot backslash escape in """ strings, therefore:

    val odd = """$100.00""" // creates "$100.00" instead of "0.00"
    // assertEquals(x5, odd) would fail
}

所有版本都构成一个字符串 "0.00" 除了最后的一个奇怪的情况。

对于 Kotlin 开发者。

我想做的是:

val $name : String

如果你也是这种情况,请使用:

val `$name` : String

要在多行字符串中显示文字美元符号,您可以执行以下操作

我为我的罪感到抱歉:

val nonInterpedValue = "${someTemplate}"
val multiLineWithNoninterp = """
        Hello
        $nonInterpedValue
        World
""".trimIndent()

如其他地方所述,这是解决方法,因为现在您不能在多行字符串中使用美元符号。 https://youtrack.jetbrains.com/issue/KT-2425

(我需要这个来让 Groovy 的模板引擎工作:https://www.baeldung.com/groovy-template-engines