假设我有一个字符串:"Test me"
.
如何将其转换为:“测试我”
?
我尝试过使用:
string?.replace("\\s+", " ")
但似乎 \\s
在 Kotlin 中是非法转义。
最佳答案
replace
function在 Kotlin 中,对于原始字符串和正则表达式模式都有重载。
"Test me".replace("\\s+", " ")
这替换了原始字符串\s+
,这就是问题所在。
"Test me".replace("\\s+".toRegex(), " ")
此行用一个空格替换多个空格。
注意显式 toRegex()
调用,它从 String
生成一个 Regex
,从而以 Regex
作为模式指定重载。
还有一个重载允许您从匹配项中生成替换。例如,要将它们替换为遇到的第一个空格,请使用:
"Test\n\n me".replace("\\s+".toRegex()) { it.value[0].toString() }
val pattern = "\\s+".toRegex()
for (s in strings)
result.add(s.replace(pattern, " "))
https://stackoverflow.com/questions/37070352/