在拆分 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 字符串模板,而是在您想要 运行 时停止将您自己的代码放入字符串中!
这里是一个字符串的例子:
val message = "Customer name is $name saved on $date"
我需要在字符串消息中找到 $variable 的每个实例并将其替换为 querySnapShot.get(变量)并且已在此处回答
这是工作的 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 字符串模板,而是在您想要 运行 时停止将您自己的代码放入字符串中!