Donc, je sais à propos de String#codePointAt(int)
, mais c'est indexée par l' char
offset, non pas par le codepoint décalage.
Je suis en train de réfléchir à essayer quelque chose comme:
- à l'aide de
String#charAt(int)
pour obtenir lechar
à un indice - tester si l'
char
est dans le haut de gamme de substituts- si oui, utilisez
String#codePointAt(int)
pour obtenir le codepoint, et incrémenter l'index par 2 - si non, utilisez le
char
de la valeur comme le codepoint, et incrémenter l'index par 1
- si oui, utilisez
Mais mes préoccupations sont
- Je ne suis pas sûr de savoir si codepoints qui sont naturellement dans le haut de gamme de substituts seront stockées sous forme de deux
char
des valeurs ou un - cela semble être une terrible manière coûteuse pour itérer à travers des personnages
- quelqu'un a dû trouver quelque chose de mieux.