Comment diviser une chaîne de caractères en Java

Hassan Saeed 11 décembre 2023
Comment diviser une chaîne de caractères en Java

Ce tutoriel explique comment diviser une chaîne de caractères en Java.

String en Java est l’un des types de données non privatives et est utilisé pour stocker une séquence de caractères. Nous pouvons déclarer une variable de type chaîne de caractères simplement comme suit:

String string = "I am a string";
String string1 = "I am another string";

Nous pouvons avoir besoin d’effectuer plusieurs tâches de traitement de chaîne, selon ce que nous essayons de faire. Considérons le cas où nous avons une chaîne qui représente des données dans un format CSV - toutes séparées par une virgule.

String data = "Apple,Banana,Orange,Peach";

Nous voulons en tirer toutes les chaînes individuelles ; nous devons donc diviser la chaîne en fonction de la virgule pour séparer les données afin d’obtenir le résultat suivant.

> Apple
> Banana
> Orange
> Peach

Les chaînes Java ont une fonction de fractionnement par défaut String#split() qui prend une expression régulière comme entrée et retourne un tableau de chaînes résultantes après fractionnement sur l’entrée donnée.

L’exemple ci-dessous illustre comment utiliser cette méthode pour fractionner une chaîne de caractères donnée en Java.

public class Main {
  public static void main(String args[]) {
    String data = "Apple,Banana,Orange,Peach";
    String[] splitted = data.split(",");
    for (int i = 0; i < splitted.length; i++) {
      System.out.println(splitted[i]);
    }
  }
}

Le code ci-dessus donne les résultats suivants.

Apple
Banana
Orange
Peach

Essayons cette méthode pour diviser une chaîne de caractères sur un paramètre différent.

Fractionnement sur un point

Cette fois-ci, nous avons une chaînes de caractères comme celle-ci: "One.Two.Three.Four". Utilisons à nouveau la même méthode pour la diviser.

public class Main {
  public static void main(String args[]) {
    String data = "One.Two.Three.Four";
    String[] splitted = data.split(".");
    for (int i = 0; i < splitted.length; i++) {
      System.out.println(splitted[i]);
    }
  }
}

Le code ci-dessus ne donnera rien ! Souvenez-vous, nous avons mentionné que la fonction split prend un modèle d’“expression régulière” en entrée. Par conséquent, nous devons prendre des mesures supplémentaires lorsque nous voulons diviser sur certains caractères spéciaux.

There sont 12 caractères avec des significations spéciales:

  • la barre oblique inversée \
  • le caret ^
  • le signe du dollar $
  • le point ou le point .
  • la barre verticale ou le symbole du tuyau |
  • le point d’interrogation ?
  • l’astérisque ou l’étoile *
  • le signe plus +
  • la parenthèse d’ouverture (
  • la parenthèse fermante )
  • et le crochet ouvrant [
  • l’accolade bouclée d’ouverture {

Ces caractères spéciaux sont souvent appelés métacaractères.

Si nous voulons diviser notre chaîne de caractères sur l’un des caractères ci-dessus, nous pouvons utiliser la barre oblique inverse \ pour échapper à ces caractères spéciaux, donc utiliser data.split('\\.') au lieu de data.split('.').

public class Main {
  public static void main(String args[]) {
    String data = "One.Two.Three.Four";
    String[] splitted = data.split("\\.");
    for (int i = 0; i < splitted.length; i++) {
      System.out.println(splitted[i]);
    }
  }
}

Le code ci-dessus s’affiche maintenant correctement:

One
Two
Three
Four

Essayons un autre exemple.

Fractionnement sur une chaîne de caractères

Cette fois-ci, nous avons une chaîne comme celle-ci : “UnFruitDeuxFruitTroisFruit”. Utilisons à nouveau la même méthode pour la diviser en fonction de la chaîne Fruit.

public class Main {
  public static void main(String args[]) {
    String data = "OneFruitTwoFruitThreeFruit";
    String[] splitted = data.split("Fruit");
    for (int i = 0; i < splitted.length; i++) {
      System.out.println(splitted[i]);
    }
  }
}

Le code ci-dessus donne les résultats:

One
Two
Three

Nous savons maintenant comment diviser une chaîne de caractères en Java sur un paramètre donné.

Article connexe - Java String