在分割String()时插入Kotlins $ {}表达式,以便在分割后添加动态数据

问题描述 投票:0回答:1

这里是一个字符串示例:

val message = "Customer name is $name saved on $date"

我需要在字符串消息中找到$ variable的每个实例,并将其替换为querySnapShot.get(variable),并在此处Previous Answer对此进行了回答。 querySnapShot此处仅包含Firestore侦听器中的数据。

这里是有效的Kotlin代码:

val message = "Customer name is $name saved on $date"

    val arr = message.split(" ").toTypedArray()

    for (i in 0 until arr.size) {
        val s = arr[i]
        if (s.contains("$")) {
            arr[i] = "+ querySnapshot.get(" + "\"" + s.substring(1) + "\"" + ")"
        }
    }

    Log.d("Mate", java.lang.String.join(" ", *arr))

打印:

customer name is querySnapShot.get("name") saved on querySnapshot.get("data)

从字面上看。

问题:如何在拆分和连接时正确添加Kotlin表达式$ {},以使其将querySnapshot.get(“ variable”)视为在连接后捕获并返回动态数据的表达式?不仅仅是一个字符串。

java string kotlin join trim
1个回答
0
投票

arr[i] = querySnapshot.get(s.substring(1))

解决方案不是尝试使用Kotlin字符串模板,而是在要运行它时停止将自己的代码放入字符串中!

© www.soinside.com 2019 - 2024. All rights reserved.