2 votes

Deux remplacements simultanés de chaînes de caractères en kotlin string

J'ai une chaîne de caractères avec des paranthèses mal dirigées, je veux remplacer ( avec ) y ) avec ( en même temps, est-ce que je peux le faire avec un seul remplacer ou dois-je utiliser une boucle ?

Par exemple, j'ai cette chaîne de caractères : Vous avez besoin de temps supplémentaire ) ou d'argent (

Ce qui devrait être comme ceci : Vous avez besoin de temps (ou d'argent) supplémentaire

2voto

ice1000 Points 3335

Oui♂you♂can.

Avec l'aide de Regex Vous pouvez faire beaucoup de choses.

c'est-à-dire que nous avons un "()" :

"()".replace(Regex("[()]")) {
    when (it.value) {
        "(" -> ")"
        ")" -> "("
        else -> ""
    }
}

Le résultat est le suivant ")(" (Je l'ai testé sous Kotlin 1.2.10).
Celui-ci est très lisible.

Une voie linéaire, plus délicate :

"()".replace(Regex("[()]")) { ")("["()".indexOf(it.value[0])].toString() }

Celui-ci est illisible.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X