2017-09-21 2 views
2

(Je suis nouveau à la programmation Java)Comment puis-je convertir un caractère en int en Java?

je par exemple:

char x = '9'; 

et je dois obtenir le numéro dans les apostrophes, le chiffre 9 lui-même. Je essayé de faire ce qui suit,

char x = 9; 
int y = (int)(x); 

mais cela n'a pas fonctionné.

Alors, que dois-je faire pour obtenir le chiffre dans les apostrophes?

Répondre

13

Comme il arrive, la valeur ascii/unicode du caractère '9' est neuf supérieure à la valeur de '0' (de même pour les autres chiffres).

Vous pouvez donc obtenir la valeur int d'un caractère décimal en utilisant la soustraction.

char x = '9'; 
int y = x - '0'; // gives 9 
+1

@HaimLvov: Pour élaborer ... Jetez un coup d'œil à la table ASCII n'importe où en ligne. Tout 'char' a la valeur numérique de sa valeur décimale équivalente dans cette table. Ainsi, vous pouvez soustraire n'importe lequel des autres pour obtenir un résultat numérique. Il arrive naturellement, naturellement, que les caractères de 0 à 9 soient en ordre pour que les maths fonctionnent. – David

+0

plus sur https://stackoverflow.com/questions/3195028/please-explain-what-this-code-is-doing-somechar-48 – Andrew

0

Vous pouvez le faire comme ceci:

int myInt = Integer.parseInt("1234"); 
+2

Ceci est pour les chaînes, pas les caractères. – Gendarme

3

Je vous ai le char '9', il va stocker son code ASCII, pour ainsi 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 ce fait, cela fonctionne 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 stocker le code 9, ce qui correspond à un horizontal tab (vous pouvez voir quand imprimer comme String, bu, vous pouvez également l'utiliser comme int que vous voyez ci-dessus

0

Si vous voulez obtenir la valeur ASCII d'un caractère, ou simplement le convertir en int, vous devez passer d'un caractère à un int.

Qu'est-ce que le casting? La conversion est lorsque nous convertissons explicitement d'un type de données primitve, ou d'une classe, à l'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 transformons en entier. L'impression de cet entier nous donnera la valeur ASCII de 'a'.

6

Vous pouvez utiliser des méthodes statiques de la classe Caractère pour obtenir la valeur numérique 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); 
}