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

Insert Kotlins ${ } expression while splitting String() in order to add dynamic data after the split

这里是一个字符串的例子:

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

我需要在字符串消息中找到 $variable 的每个实例并将其替换为 querySnapShot.get(变量)并且已在此处回答 。此处的 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") 视为在连接后捕获和 returns 动态数据的表达式?而不仅仅是一个字符串。

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

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