Java字符串类replaceAll方法丢失

时间:2018-06-20 10:27:22

标签: java android kotlin

我现在遇到一个很奇怪的问题,replaceAll对象中缺少String方法。

JDK版本:1.8.0
Android Studio版本:3.1.3
Kotlin版本:1.2

enter image description here

It hasn't been removed,那么这是怎么回事?

3 个答案:

答案 0 :(得分:6)

您只需在Kotlin中使用replace即可完成

"foo and foo".replace("foo", "bar") // "bar and bar"

请注意,上述调用会替换文字字符串,如果您需要将Regex作为第一个参数,则可以执行以下任一操作:

"foo and bar".replace("[abcd]".toRegex(), "x") // "foo xnx xxr"
"foo and bar".replace(Regex("[abcd]"), "x")    // "foo xnx xxr"

答案 1 :(得分:5)

Kotlin具有自己的String类。所有替换方法都只是replace

Java中的

replaceAll使用正则表达式,因此我假设您的目标是使用正则表达式。为此,只需在传递替换时使用正则表达式对象即可:

sb.toString().replace("your regex".toRegex(), "replacement");

如果您没有正则表达式(那是错误的),请不要致电.toRegex()

sb.toString().replace("replace target", "replacement");

答案 2 :(得分:2)

科特林将replaceAll替换为:

replace in Kotlin

actual fun String.replace(
oldChar: Char, 
newChar: Char, 
ignoreCase: Boolean = false
): String (source)

返回一个新字符串,将所有出现的oldChar替换为newChar。