在字符串的美元符号字符

时间:2015-06-07 06:29:53

标签: string templates kotlin

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

到目前为止,我提出的最佳解决方案是"""${"$"}...""",这看起来很难看。

4 个答案:

答案 0 :(得分:21)

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

"\$"

要在原始字符串文字("""...""")中对其进行转义,您提供的解决方法确实是目前最简单的解决方案。错误跟踪器中存在一个问题,您可以对其进行加星标记和/或投票:KT-2425

答案 1 :(得分:3)

看起来你没有正确粘贴你的代码,因为你只有3个双引号。

无论如何,这样做的最好方法就是按照以下方式逃离美元符号:

"\$"

答案 2 :(得分:2)

在当前的Kotlin 1.0(和beta版)中,您可以使用反斜杠"\$"

进行转义

这个通过单元测试证明了这些案例:

@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 "$100.00"
    // assertEquals(x5, odd) would fail
}

所有版本都会创建一个字符串"$100.00",除了最后一个奇怪的情况。

答案 3 :(得分:0)

我想做的是这样:

val $name : String

如果您也是这种情况,请使用以下命令:

val `$name` : String