Donc, je sais String#codePointAt(int)
, mais il est indexé par le char
décalage, pas par le décalage du point de code.
Je pense essayer quelque chose comme:
- utilisation
String#charAt(int)
pour obtenirchar
un index - tester si le
char
est dans la gamme des substituts élevés- si c'est le cas, utilisez
String#codePointAt(int)
pour obtenir le point de code et incrémentez l'index de 2 - sinon, utilisez la
char
valeur donnée comme point de code et incrémentez l'index de 1
- si c'est le cas, utilisez
Mais mes inquiétudes sont
- Je ne sais pas si les points de code qui sont naturellement dans la plage des substituts élevés seront stockés sous forme de deux
char
valeurs ou une - cela semble être un moyen extrêmement coûteux d'itérer les personnages
- quelqu'un a dû trouver quelque chose de mieux.