Remplacer les caractères multiples dans une chaîne de caractères en Java

  1. Remplacer plusieurs caractères dans une chaîne de caractères en utilisant replaceAll() en Java
  2. Remplacer plusieurs caractères dans une chaîne de caractères en utilisant String.replace() en Java

String.replaceAll() et String.replace() sont deux méthodes utiles pour remplacer des caractères dans une chaîne en Java. Dans cet article, nous verrons comment utiliser ces deux méthodes pour remplacer plusieurs caractères dans une chaîne de caractères.

La méthode replaceAll() peut faire cela seule en utilisant l’expression régulière, mais si nous ne voulons pas utiliser d’expressions régulières, nous pouvons utiliser la méthode replace().

Remplacer plusieurs caractères dans une chaîne de caractères en utilisant replaceAll() en Java

La fonction replaceAll() est utilisée lorsque nous voulons remplacer toutes les occurrences des caractères spécifiés. Nous pouvons utiliser des expressions régulières pour spécifier le caractère que nous voulons remplacer. Cette méthode prend deux arguments, le premier est le modèle d’expression régulière, et le second est le caractère que nous voulons placer.

Dans l’exemple suivant, nous remplacerons plusieurs caractères en utilisant des expressions régulières communes.

public class ReplaceAllChars {
    public static void main(String[] args) {

        String stringUnderscoresForward = "j_u_s_t_a_s/t/r/i/n/g";
        String stringWithDigits = "abcd12345efgh";
        String stringWithWhiteSpaces = "s t r i n g";
        String stringWithLowerCase = "This is a Lower Case String";

        String finalString1 = stringUnderscoresForward.replaceAll("[_/]", "-");
        String finalString2 = stringWithDigits.replaceAll("[\\d]", "");
        String finalString3 = stringWithWhiteSpaces.replaceAll("[ ]", "");
        String finalString4 = stringWithWhiteSpaces.replaceAll("[\\s]", "-");
        String finalString5 = stringWithLowerCase.replaceAll("[\\p{Lower}]", "");

        System.out.println("Old String: "+stringUnderscoresForward+" New String: "+finalString1);
        System.out.println("Old String: "+stringWithDigits+" New String: "+finalString2);
        System.out.println("Old String: "+stringWithWhiteSpaces+" New String: "+finalString3);
        System.out.println("Old String: "+stringWithLowerCase+" New String: "+finalString4);
        System.out.println("Old String: "+stringWithLowerCase+" New String: "+finalString5);

    }
}

Production :

Old String: j_u_s_t_a_s/t/r/i/n/g --New String: j-u-s-t-a-s-t-r-i-n-g
Old String: abcd12345efgh --New String: abcdefgh
Old String: s t r i n g --New String: string
Old String: This is a Lower Case String --New String: s-t-r-i-n-g
Old String: This is a Lower Case String --New String: T   L C S

Dans l’exemple ci-dessus, nous utilisons plusieurs expressions régulières qui sont couramment utilisées. Voyons ce qu’elles signifient et comment elles fonctionnent.

Le caractère stringUnderscoresForward est composé de tous les caractères séparés par des traits de soulignement et des barres obliques ; nous les remplacerons tous par un tiret (-). [char1 char2] est la regex utilisée pour remplacer deux caractères par un seul. Nous pouvons utiliser [_/] pour remplacer tous les traits de soulignement et les barres obliques par un tiret.

stringWithDigits est une chaîne de caractères avec des alphabets aléatoires et quelques chiffres entre eux. Nous voulons remplacer chaque chiffre par un caractère vide. Pour ce faire, nous pouvons utiliser la séquence d’échappement \d qui échappe aux chiffres. [\\d] sera utilisée comme une regex, et le caractère de remplacement sera un caractère vide.

stringWithWhiteSpaces contient des espaces entre chaque caractère. Pour supprimer les espaces, on peut les remplacer par des caractères vides. Les parenthèses vides avec un espace blanc [ ] indiquent un espace blanc dans la chaîne de caractères.

Nous pouvons également utiliser [\\s] pour obtenir les espaces dans une chaîne de caractères.

La chaîne de caractères stringWithLowerCase comporte à la fois des minuscules et des majuscules. Nous voulons remplacer chaque caractère minuscule par un caractère vide. Nous utiliserons [\\p{Lower}] qui est une regex pour obtenir tous les caractères minuscules.

Remplacer plusieurs caractères dans une chaîne de caractères en utilisant String.replace() en Java

public class ReplaceAllChars {
    public static void main(String[] args) {
        String stringWithRandomChars = "javbjavcjadakavajavc";

        String finalString = stringWithRandomChars
                .replace("b", "a")
                .replace("c", "a")
                .replace("d", "v")
                .replace("k", "j");

        System.out.println(finalString);

    }
}

Production :

javajavajavajavajava

Article connexe - Java String

  • Comment convertir la date d'une chaîne en horodatage en Java
  • Booléen à chaîne de caractères en Java