Reputation: 3520
I'm having a very weird issue right now, the replaceAll
method is missing from the String
object.
JDK version: 1.8.0
Android Studio version: 3.1.3
Kotlin version: 1.2
It hasn't been removed, so whats going on here??
Upvotes: 56
Views: 39875
Reputation: 89608
You can do this with just replace
in Kotlin:
"foo and foo".replace("foo", "bar") // "bar and bar"
Note that the call above replaces the literal strings, if you need a Regex
as the first parameter you can do either of the following:
"foo and bar".replace("[abcd]".toRegex(), "x") // "foo xnx xxr"
"foo and bar".replace(Regex("[abcd]"), "x") // "foo xnx xxr"
Upvotes: 81
Reputation: 28268
Kotlin has it's own String class. All the replace methods are just replace
.
replaceAll
in Java uses regex, so I assume your goal is using regex. To do this, just use a regex object when you pass to replace:
sb.toString().replace("your regex".toRegex(), "replacement");
If you don't have regex (and that's wrong), don't call .toRegex()
:
sb.toString().replace("replace target", "replacement");
Upvotes: 20
Reputation: 1002
Kotlin has replaceAll as replace:
actual fun String.replace(
oldChar: Char,
newChar: Char,
ignoreCase: Boolean = false
): String (source)
Returns a new string with all occurrences of oldChar replaced with newChar.
Upvotes: 6