说我有一个字符串:"Test me"
.
我该如何将其转换为:"Test me"
?
我尝试过使用:
string?.replace("\\s+", " ")
Run Code Online (Sandbox Code Playgroud)
但似乎这\\s
是Kotlin的非法逃脱.
hot*_*key 69
replace
Kotlin中的函数对原始字符串和正则表达式模式都有重载.
"Test me".replace("\\s+", " ")
Run Code Online (Sandbox Code Playgroud)
这取代了原始字符串\s+
,这就是问题所在.
"Test me".replace("\\s+".toRegex(), " ")
Run Code Online (Sandbox Code Playgroud)
此行用单个空格替换多个空格.注意显式toRegex()
调用,它Regex
从a开始String
,因此用Regex
模式指定重载.
还有一个过载,允许您从比赛中产生替补.例如,要用遇到的第一个空格替换它们,请使用:
"Test\n\n me".replace("\\s+".toRegex()) { it.value[0].toString() }
Run Code Online (Sandbox Code Playgroud)
val pattern = "\\s+".toRegex()
for (s in strings)
result.add(s.replace(pattern, " "))
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
14023 次 |
最近记录: |