La méthode Java split() est utilisée pour diviser des chaînes de ca­rac­tères (strings) en plusieurs sous-chaînes. Pour cela, un paramètre est défini, qui fait office de sé­pa­ra­teur. Un paramètre optionnel détermine le nombre de sous-chaînes. Découvrez dans notre article comment utiliser cette méthode.

Java String split() : à quoi sert la méthode ?

Une chaîne ou string Java concatène plusieurs ca­rac­tères, chiffres ou ca­rac­tères spéciaux. Elle existe en tant qu’objet dans la classe java.lang et est créée et traitée avec la classe String. Ce langage de pro­gram­ma­tion Web vous offre également la pos­si­bi­lité de séparer ces chaînes en plusieurs sous-chaînes. La méthode Java split() est utilisée lorsque vous souhaitez sim­ple­ment extraire certaines parties de la chaîne entière ou la diviser en ses parties in­di­vi­duelles. Nous allons vous montrer les dif­fé­rentes pos­si­bi­li­tés offertes par cette méthode.

Si vous utilisez Java String split(), vous obtenez en retour un tableau de plusieurs chaînes. Celui-ci devient alors la valeur de retour.

Syntaxe et fonc­tion­ne­ment de la méthode

La syntaxe de la méthode Java String split() est très simple, mais elle peut être complétée par un paramètre optionnel. Voici la variante de base :

String[] split(String regex)
java

Le retour se fait sous la forme d’un tableau. regex est un paramètre d’entrée par lequel vous dé­ter­mi­nez à quels endroits la chaîne doit être divisée. Vous n’êtes pas obligé d’utiliser ce paramètre, mais nous vous re­com­man­dons de le faire. Avec le paramètre optionnel limit, la syntaxe est la suivante :

String[] split(String regex, int limit)
java

limit indique combien de sous-chaînes doivent être créées. Sa valeur est un entier. Si elle est négative ou égale à 0, toutes les sous-chaînes seront affichées dans la sortie. Si vous choi­sis­sez une valeur positive, seules les sous-chaînes cor­res­pon­dantes seront affichées.

Exemple de méthode avec un espace comme sé­pa­ra­teur

La meilleure façon de com­prendre Java String split() est de voir son uti­li­sa­tion dans un exemple pratique. Pour cela, nous créons une chaîne composée de quatre mots : « Ceci est un exemple ». Vous pouvez main­te­nant diviser cette chaîne. La sé­pa­ra­tion la plus évidente est celle qui suit les dé­li­mi­ta­tions déjà exis­tantes, créées par les espaces entre les mots. Le code suivant permet d’effectuer cette sé­pa­ra­tion :

public class Main {
    public static void main(String[] args) {
        String x = "Ceci est un exemple";
        String[] resultat = x.split(" ");
        for (String y : resultat) {
            System.out.println(y);
        }
    }
}
java

Une variable String « x » est alors ini­tia­li­sée. Ensuite, Java applique la méthode split() à x. Le paramètre regex recherche les espaces dans la chaîne de ca­rac­tères et la divise à ces endroits. Ensuite, le résultat est stocké dans un tableau appelé « Output ». La boucle for permet de lister ces sous-chaînes. En utilisant la commande Java System.out.println, vous obtenez la sortie suivante :

Ceci
est
un
exemple
java

La virgule comme sé­pa­ra­teur : avec et sans espace

Vous pouvez également utiliser la méthode pour sub­di­vi­ser des listes séparées par des virgules et stockées sous forme de chaîne de ca­rac­tères. Pour cela, vous devez toutefois utiliser une petite astuce qui montre di­rec­te­ment comment vos ins­truc­tions sont mises en œuvre. Imaginons une liste des jours de la semaine, séparés par des virgules. Ces virgules seraient en fait un bon paramètre auquel regex pourrait se référer. Si vous initiez cela de cette manière, le code se présente comme suit :

public class Main {
    public static void main(String[] args) {
        String x = "Lundi, Mardi, Mercredi, Jeudi, Vendredi, Samedi, Dimanche";
        String[] resultat = x.split(",");
        for (String y : resultat) {
            System.out.println(y);
        }
    }
}
java

Si vous faites cela, la sortie ne sera pas idéale :

Lundi
 Mardi
 Mercredi
 Jeudi
 Vendredi
 Samedi
 Dimanche
java

La liste obtenue est claire, mais toutes les valeurs à partir de « Mardi » ont un espace comme premier caractère. Comme la sé­pa­ra­tion a toujours été effectuée di­rec­te­ment après la virgule, Java String split() prend cet espace comme première position dans la sous-chaîne. Si vous souhaitez con­tour­ner ce problème, il suffit de modifier la méthode en ajoutant un espace sup­plé­men­taire comme sé­pa­ra­teur. Voici le code cor­res­pon­dant :

public class Main {
    public static void main(String[] args) {
        String x = "Lundi, Mardi, Mercredi, Jeudi, Vendredi, Samedi, Dimanche";
        String[] resultat = x.split(", ");
        for (String y : resultat) {
            System.out.println(y);
        }
    }
}
java

La sortie est désormais beaucoup plus ordonnée.

Lundi
Mardi
Mercredi
Jeudi
Vendredi
Samedi
Dimanche
java

Séparer les chaînes de chiffres

Une autre pos­si­bi­lité de sé­pa­ra­tion existe pour les longues chaînes de chiffres. Imaginons par exemple une longue clé divisée par des points et un double point. Si vous souhaitez séparer les chiffres après les deux points, voici le code approprié :

public class Main {
    public static void main(String[] args) {
        String x = "194.518.552.1.17:6339";
        String[] resultat = x.split(":");
        for (String y : resultat) {
            System.out.println(y);
        }
    }
}
java

La sortie est alors la suivante :

194.518.552.1.17
6339
java

La méthode Java String split() avec le paramètre limit

Comme mentionné plus tôt, Java split() s’utilise aussi avec le paramètre optionnel limit. Celui-ci limite le nombre de chaînes par­tielles qui sont créées avec la méthode. Pour cela, vous avez trois pos­si­bi­li­tés : une valeur in­fé­rieure à 0, une valeur égale à 0 ou une valeur su­pé­rieure à 0.

limit : valeur in­fé­rieure à 0

Si vous choi­sis­sez une valeur pour limit in­fé­rieure à 0, l’ex­pres­sion régulière sans res­tric­tion est appliquée à toute la chaîne de ca­rac­tères. Le tableau qui en résulte peut être de n’importe quelle longueur. Le code ressemble par exemple à ceci :

public class Main {
    public static void main(String[] args) {
        String x = "Lundi, Mardi, Mercredi, Jeudi, Vendredi, Samedi, Dimanche ";
        String[] resultat = x.split(", ", -3);
        for (String y : resultat) {
            System.out.println(y);
        }
    }
}
java

Comme il y a encore un espace après le dernier terme « Dimanche », le tableau se termine par une chaîne vide. La sortie cor­res­pon­dante est celle-ci :

Lundi
Mardi
Mercredi
Jeudi
Vendredi
Samedi
Dimanche
java

limit : valeur égale à 0

Si vous choi­sis­sez la valeur 0 pour le paramètre limit, l’ex­pres­sion régulière sera également utilisée aussi souvent que possible. La longueur du tableau n’est pas non plus limitée. Mais si le dernier élément est une chaîne vide, elle ne sera pas prise en compte pour le tableau final.

public class Main {
    public static void main(String[] args) {
        String x = "Lundi, Mardi, Mercredi, Jeudi, Vendredi, Samedi, Dimanche ";
        String[] resultat = x.split(", ", 0);
        for (String y  : resultat) {
            System.out.println(y);
        }
    }
}
java

La sortie est identique, mais la dernière chaîne est rejetée.

Lundi
Mardi
Mercredi
Jeudi
Vendredi
Samedi
Dimanche
java

limit : valeur su­pé­rieure à 0

Les dif­fé­rences sont évidentes lorsque vous donnez à limit une valeur su­pé­rieure à 0. Cela détermine le nombre de sous-chaînes qui seront éditées. Pour notre exemple, cela ressemble à ceci :

public class Main {
    public static void main(String[] args) {
        String x = "Lundi, Mardi, Mercredi, Jeudi, Vendredi, Samedi, Dimanche ";
        String[] resultat = x.split(", ", 3);
        for (String y : resultat) {
            System.out.println(y);
        }
    }
}
java

Nous obtenons main­te­nant une sortie qui se distingue déjà au premier coup d’œil des deux pré­cé­dentes :

Lundi
Mardi
Mercredi, Jeudi, Vendredi, Samedi, Dimanche
java
Aller au menu principal