Introduction :
Le comportement de String.split() a changé de manière significative dans Java 8, où les chaînes vides au début du tableau de résultats sont désormais gérées différemment que dans les versions précédentes. Ce changement peut conduire à des résultats inattendus s'il n'est pas compris correctement.
Java 7 et versions antérieures :
Dans les versions Java antérieures à 8, String.split() inclurait un chaîne vide au début du tableau de résultats s'il y avait une correspondance de largeur positive au début de la chaîne d'entrée. Cependant, les correspondances de largeur nulle au début n'étaient pas incluses.
Java 8 et versions ultérieures :
En Java 8, une condition supplémentaire a été ajoutée à la logique de division. Désormais, une sous-chaîne vide en début de chaîne n'est pas incluse dans le tableau de résultats pour les correspondances de largeur nulle au début de la chaîne d'entrée. Ce changement vise à améliorer la cohérence et à éviter les artefacts de chaînes vides.
Explication :
Dans l'exemple suivant, où nous divisons la chaîne "abc" sur une chaîne vide dans Java 7 et 8 :
// Java 7 String[] tokens1 = "abc".split(""); // Java 8 String[] tokens2 = "abc".split("");
Maintien Compatibilité :
Si vous devez maintenir la compatibilité avec Java 7 et Java 8, vous pouvez suivre ces directives :
Java 8 et supérieur :
Java 7 et antérieurs :
Points supplémentaires :
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!