Java: Convertir la Chaîne de caractères “\uFFFF” en char
Est-il une méthode standard pour convertir une chaîne de caractères comme "\uFFFF" en caractère ce qui signifie que la chaîne de six caractères qui contient une présentation de l'un caractère unicode?
- plus de détails s'il vous plaît
- entendez-vous comme Système::.out.println("Entrer un Caractère:"); String s = lire.readLine(); char c = s.charAt(0);
- En fait la modifier par jleedev est faux: Dima a dit que sa chaîne de 6 caractères, pas sept. En interne, même en Java, une "chaîne" ne contient pas de deux barres obliques inverses. J'ai lu la version originale comme "\uFFFF", un "générique" de la chaîne, sans échapper, parce que l'affiche les minuscules "chaîne" de mots et de ne pas "Chaîne" et parce qu'il a précisément déclaré que la chaîne était composé de 6 caractères. Donc, techniquement, je suis sûr que la chaîne de caractères qu'il veut convertir est "\uFFFF", et non "\\uFFFF". Le fait que, dans un code source Java, vous devez entrer "\uFFFF" que "\\uFFFF" est, pour moi, aucun rapport avec la question.
- roulé en arrière. laissez l'auteur de définir le contexte de la question mieux.
- Juste assez, mais le fait que la barre oblique inverse n'a pas échappé semblait être source de confusion.
Vous devez vous connecter pour publier un commentaire.
La valeur est directement interprété comme la chaîne souhaitée, et l'ensemble de la séquence est réalisé comme un seul caractère.
Une autre façon, si vous allez coder en dur la valeur:
Noter que
\uFFFF
ne semble pas être un bon caractère unicode, mais essayez avec\u041f
par exemple.Lire sur unicode échappe ici
char c = '\uFFFF';
?char c = Character.valueOf('\uFFFF');
semblait trop complexe pour moi 🙂La barre oblique inverse est échappé ici (si vous voyez deux d'entre eux, mais le s Chaîne est vraiment seulement 6 caractères). Si vous êtes sûr que vous avez exactement "\u" au début de votre chaîne, il suffit de les ignorer et de conversion de la valeur hexadécimale:
Après que c doit contenir le symbole de l'euro comme prévu.
Si vous avez entrée lors de l'analyse avec Java style des caractères d'échappement vous pouvez avoir un coup d'oeil à StringEscapeUtils.unescapeJava. Il gère l'Unicode échappe ainsi que les retours à la ligne, tabulations, etc.
[0]
de toute façon? Votre code va à mi-chemin à appuyer l'unicode codepoints mais manque l'autre moitié. Quel est le point?char
? Il est déjà dans la plage valide:char ch = (char) code;