Maison >Java >javaDidacticiel >Comment parcourir les points de code Unicode dans Java Strings ?
Introduction
Itérer à travers les points de code Unicode d'une chaîne Java nécessite un car Java utilise un codage UTF-16. Cet article explore différentes stratégies et répond aux préoccupations concernant l'encodage des caractères en dehors du plan multilingue de base (BMP).
Approche du problème
Dans un premier temps, on pourrait envisager d'utiliser String #codePointAt(int) indexé par décalage de caractères. Cependant, cette approche présente deux problèmes : elle n'est pas indexée par décalage de point de code et la gestion des points de code en dehors du BMP pose des problèmes.
Une approche alternative consiste à utiliser String#charAt(int) pour obtenir des caractères et tester leur appartenance au BMP. gamme de substituts élevée. Bien que cette méthode permette de déterminer si un point de code est en dehors du BMP, elle présente les inconvénients suivants :
La solution optimale
Heureusement, Java fournit la manière canonique d'itérer sur les points de code en utilisant String#codePointAt(int):
<code class="java">for (int offset = 0; offset < length; ) { final int codepoint = s.codePointAt(offset); // do something with the codepoint offset += Character.charCount(codepoint); }</code>
Résoudre les problèmes
Conclusion
Pour résumer , parcourir les points de code Unicode dans Java Strings nécessite une compréhension plus approfondie de l'encodage sous-jacent. Cependant, l'utilisation de l'approche canonique décrite dans cet article fournit une solution correcte et efficace à ce besoin commun.
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!