Maison > Java > javaDidacticiel > le corps du texte

Comment itérer efficacement sur les points de code Unicode dans les chaînes Java ?

Mary-Kate Olsen
Libérer: 2024-11-02 06:49:02
original
498 Les gens l'ont consulté

How to Efficiently Iterate Over Unicode Codepoints in Java Strings?

Itération sur les points de code Unicode dans les chaînes Java

Bien que la classe String fournisse la méthode codePointAt(int) pour accéder aux points de code Unicode, son indexation repose sur les décalages de caractères plutôt que sur les décalages de points de code. Cela soulève des inquiétudes quant à la gestion des caractères dans la plage de substitution élevée et à l'efficacité de l'approche d'itération proposée utilisant l'analyse caractère par caractère.

Solution d'itération améliorée

Java La représentation interne de chaîne utilise un schéma de codage basé sur UTF-16. Les caractères en dehors du plan multilingue de base (BMP) sont codés à l'aide du schéma de maternité de substitution. Pour une itération efficace, envisagez d'utiliser l'approche canonique suivante :

<code class="java">final int length = s.length();
for (int offset = 0; offset < length; ) {
   final int codepoint = s.codePointAt(offset);

   // process the codepoint

   offset += Character.charCount(codepoint);
}</code>
Copier après la connexion

Cette approche gère correctement les paires de substitution pour les caractères extérieurs au BMP. En utilisant Character.charCount(codepoint), il incrémente efficacement le décalage du nombre approprié de caractères pour chaque point de code.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!