这里是一个字符串示例:
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”)视为在连接后捕获并返回动态数据的表达式?不仅仅是一个字符串。
写
arr[i] = querySnapshot.get(s.substring(1))
解决方案不是尝试使用Kotlin字符串模板,而是在要运行它时停止将自己的代码放入字符串中!