(Je suis nouveau en programmation Java)
J'ai par exemple:
char x = '9';
et j'ai besoin d'obtenir le nombre dans les apostrophes, le chiffre 9 lui-même ... J'ai essayé de faire ce qui suit,
char x = 9;
int y = (int)(x);
mais ça n'a pas marché.
Alors, que dois-je faire pour obtenir le chiffre dans les apostrophes?
La table ASCII est agencée pour que la valeur du caractère '9'
soit neuf supérieure à la valeur de '0'
; la valeur du caractère '8'
est huit supérieure à la valeur de '0'
; etc.
Ainsi, vous pouvez obtenir la valeur int d'un caractère décimal en soustrayant '0'
.
char x = '9';
int y = x - '0'; // gives the int value 9
Si vous avez le char '9'
, il stockera son code ASCII, donc pour obtenir la valeur int, vous avez 2 façons
char x = '9';
int y = Character.getNumericValue(x); //use a existing function
System.out.println(y + " " + (y + 1)); // 9 10
ou
char x = '9';
int y = x - '0'; // substract '0' code to get the difference
System.out.println(y + " " + (y + 1)); // 9 10
Et c'est un fait, ça marche aussi:
char x = 9;
System.out.println(">" + x + "<"); //> < prints a horizontal tab
int y = (int) x;
System.out.println(y + " " + (y + 1)); //9 10
Vous stockez le code 9
, qui correspond à un horizontal tab
(vous pouvez voir quand print en tant que String
, mais vous pouvez également l'utiliser comme int
comme vous voyez ci-dessus
Vous pouvez utiliser des méthodes statiques de la classe Character pour obtenir une valeur numérique à partir de char.
char x = '9';
if (Character.isDigit(x)) { // Determines if the specified character is a digit.
int y = Character.getNumericValue(x); //Returns the int value that the
//specified Unicode character represents.
System.out.println(y);
}
Si vous voulez obtenir la valeur ASCII d'un caractère, ou simplement le convertir en int, vous devez convertir un caractère en int.
Qu'est-ce que le casting? La conversion survient lorsque nous convertissons explicitement un type de données primitif, ou une classe, en un autre. Voici un bref exemple.
public class char_to_int
{
public static void main(String args[])
{
char myChar = 'a';
int i = (int) myChar; // cast from a char to an int
System.out.println ("ASCII value - " + i);
}
Dans cet exemple, nous avons un caractère ('a') et nous le convertissons en un entier. Imprimer cet entier nous donnera la valeur ASCII de 'a'.