Say I have a string: "Test me"
.
how do I convert it to: "Test me"
?
I've tried using:
string?.replace("\\s+", " ")
but it appears that \\s
is an illegal escape in Kotlin.
Say I have a string: "Test me"
.
how do I convert it to: "Test me"
?
I've tried using:
string?.replace("\\s+", " ")
but it appears that \\s
is an illegal escape in Kotlin.
replace
function in Kotlin has overloads for either raw string and regex patterns.
"Test me".replace("\\s+", " ")
This replaces raw string \s+
, which is the problem.
"Test me".replace("\\s+".toRegex(), " ")
This line replaces multiple whitespaces with a single space.
Note the explicit toRegex()
call, which makes a Regex
from a String
, thus specifying the overload with Regex
as pattern.
There's also an overload which allows you to produce the replacement from the matches. For example, to replace them with the first whitespace encountered, use this:
"Test\n\n me".replace("\\s+".toRegex()) { it.value[0].toString() }
val pattern = "\\s+".toRegex()
for (s in strings)
result.add(s.replace(pattern, " "))