Maison >Java >javaDidacticiel >Pourquoi la conversion de « 1 » en caractère en Java entraîne-t-elle une sortie vide ?

Pourquoi la conversion de « 1 » en caractère en Java entraîne-t-elle une sortie vide ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-15 07:42:02870parcourir

Why Does Converting `1` to a Character in Java Result in an Empty Output?

Dévoiler les mystères de la conversion d'entiers en caractères en Java

La conversion d'entiers en caractères en Java est une tâche courante mais peut être déroutante sinon compris correctement. Cet article met en lumière les subtilités impliquées dans cette conversion et fournit des solutions aux problèmes potentiels.

Le mystère derrière la sortie vide

Considérez l'extrait de code ci-dessous :

int a = 1;
char b = (char) a;
System.out.println(b);

Dans ce cas, la sortie sera une chaîne vide. La raison en est le schéma de codage Unicode utilisé par Java. Lorsque l'entier a est converti en caractère à l'aide de la conversion (char), il est interprété comme le point de code Unicode 1, qui correspond au caractère de début de titre. Ce caractère n'est pas imprimable, d'où la sortie vide.

L'astuce du '1'

En revanche, l'extrait de code suivant imprimera le caractère « 1 » :

int a = '1';
char b = (char) a;
System.out.println(b);

En effet, les guillemets simples dans l'initialisation de a indiquent que nous avons affaire à un caractère littéral. Dans ce cas, le caractère « 1 » correspond au point de code Unicode 49, qui est le caractère « 1 ».

Conversion de chiffres en caractères

Si vous le souhaitez pour convertir un chiffre (0-9) en caractère, vous pouvez ajouter 48 au chiffre, puis le transtyper en caractère :

int digit = 7;
char c = (char) (digit + 48);
System.out.println(c); // Output: '7'

Vous pouvez également utiliser la méthode Character.forDigit() :

int digit = 7;
char c = Character.forDigit(digit, 10);
System.out.println(c); // Output: '7'

Conversion de points de code Unicode en caractères

Pour convertir un entier qui représente un point de code Unicode en caractère, vous pouvez utiliser Character.toChars() méthode :

int codePoint = 65;
char[] chars = Character.toChars(codePoint);
char c = chars[0];
System.out.println(c); // Output: 'A'

En comprenant ces techniques, vous pouvez convertir en toute confiance des entiers en caractères en Java, en évitant toute confusion ou sorties inattendues.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn