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
Il n'a pas été supprimé , alors que se passe-t-il ici ??
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"
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");
Kotlin a replaceAll as replace:
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.