格式Kotlin字符串多次出现
我有一个字符串模板看起来像这样:
val template = "Something %s something else %s. The first was %1$s, the second was %2$s"
与Java一起工作良好。 如何与Kotlin一起使用这个反复出现的字符串值? 看起来像%1$s
是不可能的。
编译器警告: unresolved reference: s
Kotlin中的字符串文字能够进行字符串插值,美元符号是字符串模板表达式的开始。 如果您需要在字符串中使用字面美元符号,则应使用反斜线: \$
进行转义。 所以你的模板(我假设你传递给String.format
)变成:
val template = "Something %s something else %s. The first was %1\$s, the second was %2\$s"
正如Alexander Udalov的回答所说, $
可以用于字符串模板 。
除了使用反斜线来转义char $
,还可以使用${'$'}
来转义它。 当您想要在原始字符串中转义$
时,此语法将更加有用,不支持反斜杠转义。
val template = "Something %s something else %s. The first was %1${'$'}s, the second was %2${'$'}s"