web-dev-qa-db-fra.com

Comment puis-je convertir un caractère en int en Java?

(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?

10
Haim Lvov

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
42
khelwood

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

13
azro

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);
}
9
ravi

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'.

0
Amol Raje