Itération à travers les points de code Unicode dans des chaînes Java
Vous avez peut-être rencontré des situations dans lesquelles vous devez parcourir les points de code d'une chaîne Java, mais le La méthode standard String#codePointAt(int) n'est pas optimale. Bien qu'il renvoie le point de code à un décalage de caractère spécifique, il ne s'aligne pas sur le décalage du point de code.
Pour résoudre ce problème, une approche courante consiste à utiliser String#charAt(int) pour extraire le caractère à un index donné et vérifiez s’il se situe dans la plage des substituts élevés. Cependant, des préoccupations surviennent concernant le stockage des points de code dans la plage des substituts élevés (que ce soit sous la forme de deux caractères ou d'un seul) et les implications en termes de performances d'une telle approche.
Heureusement, Java fournit une solution plus efficace pour parcourir les points de code. en utilisant String#codePointAt(int). Voici une approche globale :
<code class="java">final int length = s.length(); for (int offset = 0; offset < length; ) { final int codepoint = s.codePointAt(offset); // Perform desired operations on the codepoint offset += Character.charCount(codepoint); }</code>
Cette méthode gère avec précision les points de code en dehors du BMP, garantissant une itération fiable sur tous les caractères Unicode.
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!