Remplacement de sous-chaînes en Java

JavaBeginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, nous allons apprendre à remplacer des sous-chaînes dans une String à l'aide du langage de programmation Java. Nous utiliserons différentes méthodes disponibles en Java pour remplacer un ou plusieurs caractères ou des sous-chaînes. En fin de compte, nous aurons une compréhension claire de la manière de mettre en œuvre ces méthodes dans un code Java.

Créer un fichier Java

Créeons un fichier Java pour écrire et exécuter le code. Ouvrez le terminal et accédez au répertoire du projet. Créez un nouveau fichier nommé SubstringReplace.java à l'aide de la commande suivante :

touch SubstringReplace.java

Ouvrez le fichier dans votre éditeur de texte préféré.

Remplacement de caractères individuels

Nous pouvons utiliser la méthode replace() pour remplacer une seule occurrence d'un caractère dans une chaîne de caractères. Voici un exemple :

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "hello world!";
        System.out.println("Chaîne d'origine : " + originalString);
        // Remplacement d'un seul caractère
        String newString = originalString.replace('l', 'L');
        System.out.println("Nouvelle chaîne : " + newString);
    }
}

Dans l'exemple ci-dessus, nous remplaçons le caractère l en minuscules par un caractère L en majuscules dans la chaîne d'origine.

Pour compiler et exécuter le code, utilisez les commandes suivantes :

javac SubstringReplace.java
java SubstringReplace

Cela devrait produire la sortie suivante :

Chaîne d'origine : hello world!
Nouvelle chaîne : heLLo worLd!

Remplacement de sous-chaînes

Nous pouvons utiliser la méthode replace() pour remplacer toutes les occurrences d'une sous-chaîne par une nouvelle sous-chaîne. Voici un exemple :

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "the quick brown fox jumps over the lazy dog";
        System.out.println("Chaîne d'origine : " + originalString);
        // Remplacement d'une sous-chaîne
        String newString = originalString.replace("the", "a");
        System.out.println("Nouvelle chaîne : " + newString);
    }
}

Dans l'exemple ci-dessus, nous remplaçons toutes les occurrences de la sous-chaîne "the" par la sous-chaîne "a".

Pour compiler et exécuter le code, utilisez les mêmes commandes que dans l'étape 2.

Cela devrait produire la sortie suivante :

Chaîne d'origine : the quick brown fox jumps over the lazy dog
Nouvelle chaîne : a quick brown fox jumps over a lazy dog

Remplacement de la première occurrence d'une sous-chaîne

Nous pouvons utiliser la méthode replaceFirst() pour remplacer la première occurrence d'une sous-chaîne par une nouvelle sous-chaîne. Voici un exemple :

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "the quick brown fox jumps over the lazy dog";
        System.out.println("Chaîne d'origine : " + originalString);
        // Remplacement de la première occurrence d'une sous-chaîne
        String newString = originalString.replaceFirst("the", "a");
        System.out.println("Nouvelle chaîne : " + newString);
    }
}

Dans l'exemple ci-dessus, nous remplaçons la première occurrence de la sous-chaîne "the" par la sous-chaîne "a".

Pour compiler et exécuter le code, utilisez les mêmes commandes que dans l'étape 2.

Cela devrait produire la sortie suivante :

Chaîne d'origine : the quick brown fox jumps over the lazy dog
Nouvelle chaîne : a quick brown fox jumps over the lazy dog

Remplacement de caractères avec des expressions régulières

Nous pouvons utiliser des expressions régulières pour remplacer un caractère par un motif. Voici un exemple :

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "the quick brown fox jumps over the lazy dog";
        System.out.println("Chaîne d'origine : " + originalString);
        // Remplacement de caractères avec des expressions régulières
        String newString = originalString.replaceAll("[aeiou]", "");
        System.out.println("Nouvelle chaîne : " + newString);
    }
}

Dans l'exemple ci-dessus, nous supprimons toutes les voyelles de la chaîne d'origine à l'aide d'une expression régulière.

Pour compiler et exécuter le code, utilisez les mêmes commandes que dans l'étape 2.

Cela devrait produire la sortie suivante :

Chaîne d'origine : the quick brown fox jumps over the lazy dog
Nouvelle chaîne : th qck brwn fx jmps vr th lzy dg

Remplacement de plusieurs caractères avec des expressions régulières

Nous pouvons utiliser des expressions régulières pour remplacer plusieurs caractères avec un motif. Voici un exemple :

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "the quick brown fox jumps over the lazy dog";
        System.out.println("Chaîne d'origine : " + originalString);
        // Remplacement de plusieurs caractères avec des expressions régulières
        String newString = originalString.replaceAll("[aeiouAEIOU]", "");
        System.out.println("Nouvelle chaîne : " + newString);
    }
}

Dans l'exemple ci-dessus, nous supprimons toutes les voyelles (en minuscules et en majuscules) de la chaîne d'origine à l'aide d'une expression régulière.

Pour compiler et exécuter le code, utilisez les mêmes commandes que dans l'étape 2.

Cela devrait produire la sortie suivante :

Chaîne d'origine : the quick brown fox jumps over the lazy dog
Nouvelle chaîne : th qck brwn fx jmps vr th lzy dg

Remplacement de sous-chaînes avec des expressions régulières

Nous pouvons utiliser des expressions régulières pour remplacer une sous-chaîne avec un motif. Voici un exemple :

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "the quick brown fox jumps over the lazy dog";
        System.out.println("Chaîne d'origine : " + originalString);
        // Remplacement de sous-chaînes avec des expressions régulières
        String newString = originalString.replaceAll("\\w+", "a");
        System.out.println("Nouvelle chaîne : " + newString);
    }
}

Dans l'exemple ci-dessus, nous remplaçons toutes les mots de la chaîne d'origine par la lettre a à l'aide d'une expression régulière.

Pour compiler et exécuter le code, utilisez les mêmes commandes que dans l'étape 2.

Cela devrait produire la sortie suivante :

Chaîne d'origine : the quick brown fox jumps over the lazy dog
Nouvelle chaîne : a a a a a a a a a

Remplacement de plusieurs occurrences d'une sous-chaîne avec des expressions régulières

Nous pouvons utiliser des expressions régulières pour remplacer toutes les occurrences d'une sous-chaîne avec un motif. Voici un exemple :

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "the quick brown fox jumps over the lazy dog";
        System.out.println("Chaîne d'origine : " + originalString);
        // Remplacement de toutes les occurrences d'une sous-chaîne avec des expressions régulières
        String newString = originalString.replaceAll("the", "a");
        System.out.println("Nouvelle chaîne : " + newString);
    }
}

Dans l'exemple ci-dessus, nous remplaçons toutes les occurrences de la sous-chaîne "the" par la lettre a à l'aide d'une expression régulière.

Pour compiler et exécuter le code, utilisez les mêmes commandes que dans l'étape 2.

Cela devrait produire la sortie suivante :

Chaîne d'origine : the quick brown fox jumps over the lazy dog
Nouvelle chaîne : a quick brown fox jumps over a lazy dog

Utilisation de StringBuilder pour remplacer des sous-chaînes

Nous pouvons utiliser la classe StringBuilder pour remplacer des sous-chaînes de manière plus efficace. Voici un exemple :

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "the quick brown fox jumps over the lazy dog";
        System.out.println("Chaîne d'origine : " + originalString);
        // Utilisation de StringBuilder pour remplacer des sous-chaînes
        StringBuilder stringBuilder = new StringBuilder(originalString);
        stringBuilder.replace(0, 3, "a");
        String newString = stringBuilder.toString();
        System.out.println("Nouvelle chaîne : " + newString);
    }
}

Dans l'exemple ci-dessus, nous utilisons la classe StringBuilder pour remplacer les trois premiers caractères de la chaîne par la lettre a.

Pour compiler et exécuter le code, utilisez les mêmes commandes que dans l'étape 2.

Cela devrait produire la sortie suivante :

Chaîne d'origine : the quick brown fox jumps over the lazy dog
Nouvelle chaîne : a quick brown fox jumps over the lazy dog

Utilisation de StringBuffer pour remplacer des sous-chaînes

De manière similaire à StringBuilder, nous pouvons utiliser la classe StringBuffer pour remplacer des sous-chaînes de manière plus efficace. La seule différence est que StringBuffer est thread-safe. Voici un exemple :

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "the quick brown fox jumps over the lazy dog";
        System.out.println("Chaîne d'origine : " + originalString);
        // Utilisation de StringBuffer pour remplacer des sous-chaînes
        StringBuffer stringBuffer = new StringBuffer(originalString);
        stringBuffer.replace(0, 3, "a");
        String newString = stringBuffer.toString();
        System.out.println("Nouvelle chaîne : " + newString);
    }
}

Dans l'exemple ci-dessus, nous utilisons la classe StringBuffer pour remplacer les trois premiers caractères de la chaîne par la lettre a.

Pour compiler et exécuter le code, utilisez les mêmes commandes que dans l'étape 2.

Cela devrait produire la sortie suivante :

Chaîne d'origine : the quick brown fox jumps over the lazy dog
Nouvelle chaîne : a quick brown fox jumps over the lazy dog

Résumé

Dans ce laboratoire, nous avons appris à remplacer des sous-chaînes dans une String à l'aide du langage de programmation Java. Nous avons discuté de plusieurs méthodes disponibles en Java pour remplacer un/plusieurs caractères ou des sous-chaînes. Nous avons également appris à utiliser des expressions régulières et les classes StringBuilder/StringBuffer pour des remplacements de sous-chaînes plus efficaces. En utilisant ces connaissances, vous pouvez facilement manipuler les chaînes dans vos programmes Java.