web-dev-qa-db-fra.com

Java Classe String méthode replaceAll manquante

J'ai un problème très étrange en ce moment, la méthode replaceAll est manquante dans l'objet String.

Version JDK: 1.8.0
Version d'Android Studio: 3.1.3
Version Kotlin: 1.2

enter image description here

Il n'a pas été supprimé , alors que se passe-t-il ici ??

10
daka

Vous pouvez le faire avec juste replace dans Kotlin:

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

Notez que l'appel ci-dessus remplace les chaînes littérales, si vous avez besoin d'un Regex comme premier paramètre, vous pouvez effectuer l'une des opérations suivantes:

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

Kotlin a sa propre classe String. Toutes les méthodes de remplacement sont simplement replace.

replaceAll in Java utilise regex, donc je suppose que votre objectif est d'utiliser regex. Pour ce faire, utilisez simplement un objet regex lorsque vous passez pour remplacer:

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

Si vous n'avez pas d'expression régulière (et c'est faux), n'appelez pas .toRegex():

sb.toString().replace("replace target", "replacement");
7
Zoe the transgirl

Kotlin a replaceAll as replace:

remplacer dans Kotlin

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

Renvoie une nouvelle chaîne avec toutes les occurrences de oldChar remplacées par newChar.

2
Zinc