Si vous savez que tous vos commentaires va être dans le plan multilingue de base (U + 0000 à U + FFFF), vous pouvez simplement utiliser:
char character = 'x';
int codePoint = character;
qui utilise la conversion implicite de char
à int
, comme spécifié dans JLS 5.1.2:
19 conversions spécifiques sur des types primitifs sont appelés les conversions d'élargissement primitives:
- ...
char
à int
, long
, float
, ou double
...
Une conversion étendue d'un caractère à un type T zéro étend la représentation intégrale de la valeur char pour remplir le format plus large.
Cependant, un char
est seulement un code UTF-16 unité. Le point de Character.codePointAt
est qu'il fait face à des points de code en dehors du BMP, qui sont composés d'une paire de substitution - deux unités de code UTF-16 qui se rejoignent pour former un seul caractère.
De JLS 3.1:
La norme Unicode a été initialement conçu en tant que largeur fixe codage de caractères de 16 bits. Il a depuis été modifié pour permettre les caractères dont la représentation nécessite plus de 16 bits. La plage de points de code légale est maintenant U + 0000 à U + 10FFFF, en utilisant la notation hexadécimale U + n. Les caractères dont les points de code sont supérieurs à U + FFFF sont appelés caractères supplémentaires. Pour représenter la gamme complète des caractères en utilisant uniquement des unités de 16 bits, la norme Unicode définit un codage appelé UTF-16.Dans ce codage, les caractères supplémentaires sont représentés par des paires d'unités de code de 16 bits, le premier de la gamme des substituts élevés (U + D800 à U + DBFF), le second de la gamme des substituts inférieurs (U + DC00 à U + DFFF). Pour les caractères compris entre U + 0000 et U + FFFF, les valeurs des points de code et des unités de code UTF-16 sont les mêmes.
Si vous devez être capable de faire face à cette situation plus compliquée, vous aurez besoin du code le plus compliqué.
Ah, c'est ce qui peut être fait. Je n'aurais pas deviné ça; Je cherchais des méthodes dans 'Character' pour le faire. Cela semble fonctionner pour ce dont j'avais besoin, merci. – Pokechu22