Diviser des chaînes Java sans supprimer les valeurs vides
Lorsque vous essayez de diviser une chaîne Java à l'aide de la méthode split (String regex), on pourrait s'attendre pour conserver les valeurs vides dans le tableau résultant, en particulier si elles se trouvent n'importe où dans la chaîne. Cependant, par défaut, la méthode split supprime les valeurs vides de fin du tableau de sortie.
Considérez le code suivant :
String data = "5|6|7||8|9||"; String[] split = data.split("\|"); System.out.println(split.length);
Dans cet exemple, nous nous attendons à obtenir huit valeurs dans la division tableau, y compris les chaînes vides : [5, 6, 7, EMPTY, 8, 9, EMPTY, EMPTY]. Cependant, nous nous retrouvons de manière inattendue avec seulement six valeurs en raison de la suppression automatique des chaînes vides de fin.
Pour résoudre ce problème, nous pouvons exploiter la méthode split (String regex, int limit) surchargée, où la limite est définie à une valeur négative. Cela indique à la méthode de s'abstenir de supprimer les chaînes vides de fin.
String[] split = data.split("\|", -1);
En invoquant la version surchargée, nous remplaçons le comportement par défaut et préservons toutes les valeurs vides dans le tableau divisé, quelle que soit leur position.
Informations supplémentaires
Il est important de noter que le comportement par défaut consistant à supprimer uniquement les chaînes vides de fin s'applique lorsque ces chaînes vides sont générées à la suite du processus de fractionnement. Cela signifie que si une chaîne vide existe dans la chaîne d'entrée d'origine (par exemple, "".split(anything)), elle restera dans le tableau résultant car elle n'a pas été introduite par le mécanisme de fractionnement.
Ce granulaire la compréhension du comportement de la méthode split garantit aux développeurs un meilleur contrôle sur le contenu de leurs tableaux de sortie lorsqu'ils traitent des valeurs potentiellement vides.
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!