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é.