Java: convertissez la chaîne "uFFFF" en char
Existe-t-il une méthode standard pour convertir une chaîne comme "uFFFF" en caractère signifiant que la chaîne de six caractères contient une présentation d'un caractère unicode?
4 réponses
char c = "\uFFFF".toCharArray()[0];
la valeur est directement interprétée comme la chaîne désirée, et la séquence entière est réalisée comme un seul caractère.
une Autre façon, si vous allez coder en dur la valeur:
char c = '\uFFFF';
Notez que \uFFFF
ne semble pas être un caractère unicode, mais essayez avec \u041f
par exemple.
La barre oblique inverse est échappé ici (si vous voyez deux d'entre eux, mais le s String est en fait seulement 6 caractères de long). Si vous êtes bien sûr que vous avez exactement "\u" Au début de votre chaîne, sautez-les simplement et convertissez la valeur hexadécimale:
String s = "\u20ac";
char c = (char) Integer.parseInt( s.substring(2), 16 );
Après c contient le symbole de l'euro comme prévu.
si vous analysez des entrées avec des caractères Java style échappés, vous pourriez vouloir jeter un coup d'oeil à StringEscapeUtils.unescapeJava. Il gère Unicode escapes ainsi que les nouvelles lignes, onglets, etc.
String s = StringEscapeUtils.unescapeJava("\u20ac\n"); // s contains the euro symbol followed by newline
String charInUnicode = "\u0041"; // ascii code 65, the letter 'A'
Integer code = Integer.parseInt(charInUnicode.substring(2), 16); // the integer 65 in base 10
char ch = Character.toChars(code)[0]; // the letter 'A'