Dévoilement de la divergence de division dans Java 8
Contexte :
Avant Java 8, la chaîne. La méthode split inclurait systématiquement les chaînes vides de début et de fin dans son tableau de résultats. Cependant, ce comportement a changé dans Java 8. Cet article examine les raisons de ce changement et propose des stratégies pour maintenir la compatibilité entre les versions de Java.
Changement de modèle dans Java 8 :
Java 8 a introduit une modification à la documentation de String.split et Pattern.split. Une nouvelle clause a été ajoutée, indiquant qu'une sous-chaîne vide en début de chaîne ne serait incluse dans le tableau de résultats que s'il existe une correspondance de largeur positive au début de la séquence d'entrée. En revanche, une correspondance de largeur nulle au début de l'entrée ne produirait pas de sous-chaîne vide en début de chaîne.
Comparaison de code :
Comparaison du code d'implémentation de référence pour Pattern .split dans Java 7 et Java 8 révèle l'introduction d'une instruction conditionnelle dans Java 8. Cette instruction vérifie si la correspondance au début de la séquence d'entrée a une largeur nulle et si c'est le cas, l'exclut du résultat.
// Code added in Java 8 if (index == 0 && index == m.start() && m.start() == m.end()) { // no empty leading substring included for zero-width match // at the beginning of the input char sequence. continue; }
Préserver la compatibilité :
Pour maintenir la cohérence entre les versions de Java et conserver le comportement de Java 8, les utilisateurs peuvent suivre les étapes suivantes :
En suivant ces directives, les développeurs peuvent garantir que le comportement de String.split reste cohérent et prévisible dans toutes les versions de Java.
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!