CodeGym /Blog Java /Random-ES /Java Convertir Char a Int con ejemplos
Autor
Oleksandr Miadelets
Head of Developers Team at CodeGym

Java Convertir Char a Int con ejemplos

Publicado en el grupo Random-ES
Muy a menudo, la información simbólica que los usuarios ingresan desde el teclado debe convertirse en números o un programador debe obtener números de ella. Hay algunos métodos en Java para hacerlo. En este artículo, descubriremos los métodos que nos ayudarán a convertir char en valor int.

Casting de tipo implícito

La conversión de tipos es el proceso de convertir un valor de un tipo de datos en un valor de otro tipo de datos. La conversión de tipos podría ser manual o automática según los tipos. Los tipos deben ser compatibles. En Java tenemos dos tipos de encasillamiento, explícito e implícito. Implícito solo se puede hacer si convertimos la variable de tipo "más grande" a "más pequeño" (por ejemplo, de int a long). Si queremos convertir una variable de tipo char a tipo de datos int, la mayoría de las veces necesitamos obtener su valor equivalente de la tabla ASCII. Cada alfabeto o símbolo que se puede ingresar digitalmente tiene un número entero único correspondiente. Por ejemplo, el alfabeto 'A' tiene un código ASCII de 65. Mediante la conversión de tipos, estamos convirtiendo a la fuerza el valor del carácter en su código entero ASCII equivalente. Aquí está nuestro ejemplo de Java char a int usando conversión de tipos.

Ejemplo de Java char a int (usando 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 salida es:
El valor ASCII de 'A' es 65 El valor ASCII de 'a' es 97

Casting de tipo explícito

Como vimos anteriormente, en el caso de la conversión de char a int, no es necesario hacerlo explícitamente, ya que se usan 2 bytes para almacenar char y 4 bytes para almacenar int. Es decir, el tipo int es "más grande". Sin embargo, como ejercicio, podemos convertir explícitamente una variable char a un entero. Para esta operación, mencionamos (int) entre paréntesis.

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 salida es:
El valor ASCII de 'A' es 65

Usando getNumericValue()

getNumericValue() funciona de manera similar a la conversión de tipos, pero en lugar de seguir la tabla ASCII, sigue el estándar de codificación Unicode. ASCII solo puede representar un conjunto específico de símbolos y caracteres, como letras latinas (más algunos símbolos del alfabeto nacional), números, signos de puntuación y caracteres de control. Unicode contiene más de un millón de valores que contienen letras y símbolos para todos los idiomas del mundo. Por ejemplo, el valor de A en Unicode es \u0041, que equivale a un valor numérico de 10. Si el carácter no tiene un valor numérico, el método devuelve -1. Usar este método podría ser conveniente para devolver números enteros no negativos.

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 salida es:
El valor Unicode de '7' es 7 El valor Unicode de 'A' es 10 El valor Unicode de '*' es -1

Usando ParseInt()

ParseInt() es otro método para convertir char a int. También se usa ampliamente para realizar conversiones cruzadas entre otros tipos de datos numéricos, como float, double y long. ParseInt() requiere al menos un argumento y, como máximo, dos argumentos. El primer argumento es el nombre de la variable del valor que estamos convirtiendo. El segundo argumento es la base, que se refiere al valor base de decimal, octal, hexadecimal, etc. Debido a la capacidad de ParseInt() para convertir tipos de datos teniendo en cuenta también el sistema numérico, es una opción óptima para convertir "valores numéricos". ” char a int en Java. Hay dos puntos importantes a tener en cuenta si desea utilizar este método. parseInt()El método solo acepta argumentos de cadena, por lo que primero debe convertir char a cadena (usando String.valueOf ). No puede usar parseInt() para convertir los alfabetos u otros símbolos, excepto los valores numéricos almacenados en el tipo de datos char. Si ingresa valores no numéricos, obtendrá un error. Aquí hay un ejemplo de 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 salida es:
7
Intentemos usar parseInt ton valor no numérico:

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 salida es:
Excepción en el subproceso "principal" java.lang.NumberFormatException: para la cadena de entrada: "q" en java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:68) en java.base/java.lang.Integer.parseInt (Integer.java:652) en java.base/java.lang.Integer.parseInt(Integer.java:770) en charToInt.ValueOf.main(ValueOf.java:6)

Restar '0'

Hay una forma muy sencilla de convertir un carácter en un número entero. Para hacer esto, simplemente reste el valor ASCII del carácter "0" del carácter. Por ejemplo, para obtener el int 7 del carácter "7":

int intValue = '7'-' 0 ';
¡Tenga en cuenta que esto funciona para obtener valores int exclusivamente para caracteres enteros! Si resta '0' de, por ejemplo, 'A', el método simplemente devolverá la diferencia entre los códigos ASCII de cero y la letra A. He aquí un ejemplo.

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 salida es:
7 7 A 17 * -6

Conclusiones

Si necesita convertir char a int en Java, use uno de los métodos:
  • Conversión de tipo implícito //obteniendo valores ASCII
  • Carácter.getNumericValue()
  • Integer.parseInt() //en pareja con String.valueOf())
  • Restar '0' //funciona solo para valores numéricos enteros
También puede hacer una conversión de tipos explícita. Sin embargo, esta es una operación redundante: no es necesaria, pero solo funciona en Java.
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION