CodeGym /Blog Java /Random-FR /Java Convertir Char en Int avec des exemples
Auteur
Oleksandr Miadelets
Head of Developers Team at CodeGym

Java Convertir Char en Int avec des exemples

Publié dans le groupe Random-FR
Assez souvent, les informations symboliques que les utilisateurs saisissent à partir du clavier doivent être converties en nombres ou un programmeur doit en obtenir des nombres. Il existe des méthodes en Java pour le faire. Dans cet article, nous allons découvrir les méthodes pour nous aider à convertir char en valeur int.

Casting de type implicite

La conversion de type est le processus de conversion d'une valeur d'un type de données en une valeur d'un autre type de données. Le casting de type peut être manuel ou automatique selon les types. Les types doivent être compatibles. En Java, nous avons deux types de transtypage, explicite et implicite. Implicite ne peut être fait que si nous convertissons la variable du type "plus grand" au type "plus petit" (par exemple, de int à long). Si nous voulons convertir une variable de type char en type de données int, nous devons le plus souvent obtenir sa valeur équivalente à partir de la table ASCII. Chaque alphabet ou symbole qui peut être saisi numériquement a un nombre entier unique correspondant. Par exemple, l'alphabet 'A' a un code ASCII de 65. Par conversion de type, nous convertissons de force la valeur du caractère en son code entier ASCII équivalent. Voici notre exemple Java char to int utilisant la conversion de type.

Exemple Java char to int (en utilisant typeCasting)


package charToInt;

public class Implicit {

       public static void main(String[] args) {
           char char1 = 'A';
           char char2 = 'a';
           int x = char1;
           int y = char2;

           System.out.println("ASCII value of '" + char1 + "' is " + x);
           System.out.println("ASCII value of '" + char2 + "' is " + y);
       }
   }
La sortie est:
La valeur ASCII de 'A' est 65 La valeur ASCII de 'a' est 97

Casting de type explicite

Comme nous l'avons vu plus haut, dans le cas d'une conversion char vers int, il n'est pas nécessaire de le faire explicitement, puisque 2 octets sont utilisés pour stocker char et 4 octets sont utilisés pour stocker int. C'est-à-dire que le type int est "plus grand". Néanmoins, à titre d'exercice, nous pouvons transtyper explicitement une variable char en un entier. Pour cette opération, nous mentionnons (int) entre parenthèses.

package charToInt;

public class Explicit {

       public static void main(String[] args) {
           char char1 = 'A';
           System.out.println("ASCII value of '" + char1 + "' is " + (int)char1);
       }
   }
La sortie est:
La valeur ASCII de 'A' est 65

Utilisation de getNumericValue()

getNumericValue() fonctionne de la même manière que le transtypage de type, mais au lieu de suivre la table ASCII, il suit la norme de codage Unicode. L'ASCII ne peut représenter qu'un ensemble spécifique de symboles et de caractères tels que les lettres latines (ainsi que certains symboles de l'alphabet national), les chiffres, la ponctuation et les caractères de contrôle. Unicode contient plus d'un million de valeurs contenant des lettres et des symboles pour toutes les langues du monde. Par exemple, la valeur de A en Unicode est \u0041, ce qui équivaut à une valeur numérique de 10. Si le caractère n'a pas de valeur numérique, la méthode renvoie -1. L'utilisation de cette méthode peut être pratique pour renvoyer des entiers non négatifs.

package charToInt;

public class UsingGetNumericValue {

       public static void main(String[] args) {
           char char1 = '7';
           char char2 = 'A';
           char char3 = '*';

           int x = Character.getNumericValue(char1);
           int y = Character.getNumericValue(char2);
           int z = Character.getNumericValue(char3);

           System.out.println("The Unicode value of '" + char1 + "' is " + x);
           System.out.println("The Unicode value of '" + char2 + "' is " + y);
           System.out.println("The Unicode value of '" + char3 + "' is " + z);

       }
   }
La sortie est:
La valeur Unicode de '7' est 7 La valeur Unicode de 'A' est 10 La valeur Unicode de '*' est -1

Utilisation de ParseInt()

ParseInt() est une autre méthode pour convertir le char en int. Il est également largement utilisé pour effectuer une conversion croisée entre d'autres types de données numériques, tels que float, double et long. ParseInt() nécessite au moins un argument et au plus deux arguments. Le premier argument est le nom de la variable de la valeur que nous convertissons. Le deuxième argument est la base qui fait référence à la valeur de base de décimal, octal, hexadécimal, etc. En raison de la capacité de ParseInt() à convertir les types de données avec le système de nombres à l'esprit, c'est un choix optimal pour convertir "numerical ” char à int en Java. Il y a deux points importants à garder à l'esprit si vous souhaitez utiliser cette méthode. parseInt()La méthode accepte uniquement les arguments String, vous devez donc d'abord convertir char en String (en utilisant String.valueOf ). Vous ne pouvez pas utiliser parseInt() pour convertir les alphabets ou d'autres symboles, à l'exception des valeurs numériques stockées dans le type de données char. Si vous entrez des valeurs non numériques, vous obtiendrez une erreur. Voici un exemple Java :

package charToInt;

public class ParseInt {
       public static void main(String args[]){
           char ch = '7';
           int n = Integer.parseInt(String.valueOf(ch));
           System.out.println(n);
       }
   }
La sortie est:
7
Essayons d'utiliser parseInt ton valeur non numérique:

package charToInt;

public class ParseInt {
       public static void main(String args[]){
           char ch = 'q';
           int n = Integer.parseInt(String.valueOf(ch));
           System.out.println(n);
       }
   }
La sortie est:
Exception dans le thread "main" java.lang.NumberFormatException : pour la chaîne d'entrée : "q" dans java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:68) dans java.base/java.lang.Integer.parseInt (Integer.java:652) à java.base/java.lang.Integer.parseInt(Integer.java:770) à charToInt.ValueOf.main(ValueOf.java:6)

Soustraire '0'

Il existe un moyen très simple de convertir un caractère en entier. Pour ce faire, il suffit de soustraire la valeur ASCII du caractère "0" du caractère. Par exemple, pour obtenir int 7 à partir du caractère "7":

int intValue = '7'-' 0 ';
Notez que cela fonctionne pour obtenir des valeurs int exclusivement pour les caractères entiers ! Si vous soustrayez '0' de, disons, 'A', la méthode renverra simplement la différence entre les codes ASCII de zéro et la lettre A. Voici un exemple.

package charToInt;

public class SubtractingZero {

   public static void main(String[] args) {
       char char1 = '7';
       char char2 = 'A';
       char char3 = '*';

       System.out.println(char1);
       System.out.println(char1 - '0');

       System.out.println(char2);
       System.out.println(char2 - '0');

       System.out.println(char3);
       System.out.println(char3 - '0');
      
   }

}
La sortie est:
7 7 A 17 * -6

Conclusion

Si vous avez besoin de convertir char en int en Java, utilisez l'une des méthodes :
  • Conversion de type implicite //obtention de valeurs ASCII
  • Caractère.getNumericValue()
  • Integer.parseInt() //en paire avec String.valueOf())
  • Soustraire '0' // ne fonctionne que pour les valeurs numériques entières
Vous pouvez également faire un cast de type explicite. Cependant, il s'agit d'une opération redondante : elle n'est pas nécessaire, mais fonctionne uniquement en Java.
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION