在字符串文字中添加$
字符的最简洁方法是什么?
到目前为止,我提出的最佳解决方案是"""${"$"}..."""
,这看起来很难看。
答案 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