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?

25
demandé sur Bozho 2010-01-24 11:04:41

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.

pour tout savoir sur unicode échappe ici

30
répondu Bozho 2010-01-24 10:15:36

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.

19
répondu SyntaxT3rr0r 2010-01-24 08:17:31

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
18
répondu stoivane 2012-11-27 16:27:36
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'
6
répondu Yoni 2010-01-24 08:32:46