Kotlin 传递带有转义美元符号的字符串

Raf*_*ael 6 android textview kotlin

在我们的项目中,我想传递带有美元符号的字符串。最终结果应该是这样的~ $1300:但我只得到~其余的没有打印。通过调试我发现问题出在美元符号上。如何传递带有美元符号的字符串?转义美元符号不能解决这个问题。

fun setItem() {
   bind(valueSubtitle = "~ \$${trx.currencyAmount}")
        }
fun bind(valueSubtitle: String? = null) {
        val valueSubtitleTextView = findViewById(R.id.txtValueSubtitle)
        valueSubtitleTextView.text = valueSubtitle
    }
Run Code Online (Sandbox Code Playgroud)

我对直接打印带有美元符号的字符串没有任何问题。当我尝试将此字符串传递给其他函数然后才打印它时遇到问题。

我调试了更新 ,发现当我的号码末尾有双零时出现问题:189.00 or 123.00。这些数字导致了问题。其他数字如123.40 or 1152.90正确显示。

更新 2 问题出在我的 TextView 上。当它打印不同的双数时,它的行为很奇怪。当我更改android:layout_width="match_parent"android:layout_width="wrap_content"

Sai*_*man 5

您可以尝试字面表示。

    fun main(args: Array<String>) {
    val amount = "25"
    val escapedString = "~ ${'$'}$amount"
    printString(escapedString)

}

fun printString( str : String) {
    println(str)
}
Run Code Online (Sandbox Code Playgroud)


Jee*_*ede 1

原始字符串转义字符串内都支持模板。如果需要$在原始字符串中表示文字字符(不支持反斜杠转义),可以使用以下语法:

itemAmount.bind(valueSubtitle = "~ \${'$'}${trx.currencyAmount}")
Run Code Online (Sandbox Code Playgroud)

看起来语法很糟糕,但会起作用