Je sais que le caractère ne peut pas contenir de caractères unicode (comme Char c = '\ u1023'). Alors, comment j'irais faire
String s = "ABCDEFG\u1023"; char[] c = s.toCharArray();
4 Réponses :
Quiconque vous a dit que dans Java Les valeurs des types intégraux sont des entiers dans les gammes suivantes: P>
Char CODE> ne peut pas contenir de caractères Unicode, était faux : p>
char code>, à partir de
'\ u0000' code> à
'\ uffff' code> inclus, c'est-à-dire de 0 à
65535 LI>
ul>
blockQuote>
Oh merci. Ok qui trie beaucoup de problèmes. Je dois avoir pensé à autre chose. Je vais accepter cela comme la réponse dans quelques minutes. (Alors ne me laissez pas encore!)
Trois choses: P>
TOCHARARRAY () CODE> retournera un tableau de caractères de caractère qui est pratiquement identique à UTF16 LI>
- Depuis un char est 16 bits et que l'Unicode s'étend sur 21 bits, les personnages situés en dehors du BMP sont codés sous forme de deux caractères de substitution. Java 1.5 à partir d'API Pour cela, par exemple
string.codepointat (...) code>
. Si vous utilisez Java 1.4 ou plus tôt, examinez l'ICU4J. LI>
ol>
en Java, un caractère est essentiellement un peu signé. Afin de parcourir une chaîne qui comporte des caractères Unicode en dehors de la plage soutenue par CHAR (le premier 65536), vous devez utiliser le motif suivant, qui stocke chaque code de code comme int. Int.
for (int i = 0; i < str.length();) { int ch = str.codePointAt(i); // do stuff with ch... i += Character.charCount(ch); }
Java Pour être en sécurité, vous pouvez diviser la chaîne en matrice de chaîne: p> ... ou utilisez Char code> peut contenir Les caractères unicode les plus Les autres ont déjà mentionné, mais les personnages en dehors du plan multilingue de base (BMP) sont divisés en plusieurs
char code> s et les manipulant De manière autonome peut casser la chaîne.
émetteur code>
, islowowurrogate code> A> et
ishighsurrogate code>
méthodes de caractère code> pour empêcher la modification de Ingle
Char code> dans la paire: p>
réellement.
char c = '\ u1023' code> fonctionne pour moi