Maison > Java > javaDidacticiel > Comment puis-je empêcher la méthode `split()` de Java de supprimer les chaînes vides ?

Comment puis-je empêcher la méthode `split()` de Java de supprimer les chaînes vides ?

DDD
Libérer: 2024-12-29 13:10:15
original
530 Les gens l'ont consulté

How Can I Prevent Java's `split()` Method from Removing Empty Strings?

Correction de la suppression des valeurs vides dans le fractionnement de chaînes Java

Lors de l'utilisation de la méthode split() sur une chaîne Java, vous pouvez rencontrer un résultat inattendu où les valeurs vides sont supprimées du tableau résultant. Cela peut être vu dans l'exemple suivant :

String data = "5|6|7||8|9||";
String[] split = data.split("\|");
System.out.println(split.length);
Copier après la connexion

Dans ce cas, vous vous attendez à obtenir un tableau de 8 valeurs : [5, 6, 7, EMPTY, 8, 9, EMPTY, EMPTY] . Cependant, seules 6 valeurs sont renvoyées.

La raison de ce comportement est que la méthode split() supprime par défaut les chaînes vides de fin du tableau de résultats. Pour désactiver ce comportement et inclure des valeurs vides, vous pouvez utiliser la version surchargée de split() :

String[] split = data.split("\|", -1);
Copier après la connexion

En définissant le paramètre limit sur une valeur négative (-1 dans ce cas), vous instruisez la méthode pour appliquer le modèle autant de fois que possible et inclure toutes les chaînes vides de fin.

Cela est possible car split(regex) appelle en interne split(regex, 0), qui supprime les chaînes vides de fin. En fournissant une limite négative, vous désactivez efficacement ce comportement et forcez la méthode à conserver toutes les valeurs, y compris les valeurs vides.

Exception :

Il est important de noter que la suppression les chaînes vides de fin n'ont de sens que si elles ont été créées par le processus de division. Pour une chaîne vide, puisqu'elle ne peut pas être divisée davantage, sa division entraînera un tableau avec une seule valeur de chaîne vide. En effet, split() n'a effectué aucun fractionnement réel, donc la chaîne vide représente l'entrée d'origine, pas une chaîne vide générée par l'opération de fractionnement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal