Java convertir cadena a entero

J

Introducción

Convertir un String a una int, o su respectiva clase contenedora Integer, es una operación común y sencilla. Lo mismo ocurre al revés, convirtiendo un entero en una cadena.

Hay varias formas de lograr esta conversión simple utilizando métodos integrados en el JDK.

Conversión de cadena en entero

Para convertir String en Integer o int, hay cuatro enfoques integrados. La clase contenedora Integer proporciona algunos métodos específicamente para este uso: parseInt(), valueOf() y decode(), aunque también podemos usar su constructor y pasarle un String.

Estos tres métodos tienen diferentes tipos de devolución:

  • parseInt()– devuelve primitivo int.
  • valueOf() – devuelve una instancia nueva o en caché de Integer
  • decode() – devuelve una instancia nueva o en caché de Integer

Dicho esto, es válido plantear una pregunta:

“Cuál es la diferencia entre valueOf() y decode() ¿luego?

La diferencia es que decode() también acepta otras representaciones numéricas, distintas del decimal regular: dígitos hexadecimales, dígitos octales, etc.

Nota: Es una mejor práctica crear una instancia Integer con la ayuda del valueOf() método en lugar de confiar en el constructor. Esto es porque el valueOf() El método devolverá una copia en caché para cualquier valor entre -128 y 127 inclusive, y al hacerlo, reducirá la huella de memoria.

Integer.parseInt ()

los parseInt() El método se envía en dos sabores:

  • parseInt(String s) – Aceptando la cadena que nos gustaría analizar
  • parseInt(String s, int radix) – Aceptando la Cadena así como la base del sistema de numeración

los parseInt() El método convierte la cadena de entrada en una primitiva. int y lanza un NumberFormatException si la cadena no se puede convertir:

String string1 = "100";
String string2 = "100";
String string3 = "Google";
String string4 = "20";

int number1 = Integer.parseInt(string1);
int number2 = Integer.parseInt(string2, 16); 
int number3 = Integer.parseInt(string3, 32); 
int number4 = Integer.parseInt(string4, 8); 

System.out.println("Parsing String "" + string1 + "": " + number1);
System.out.println("Parsing String "" + string2 + "" in base 16: " + number2);
System.out.println("Parsing String "" + string3 + "" in base 32: " + number3);
System.out.println("Parsing String "" + string4 + "" in base 8: " + number4);

Ejecutar este fragmento de código producirá:

Parsing String "100": 100
Parsing String "100" in base 16: 256
Parsing String "Google" in base 32: 562840238
Parsing String "20" in base 8: 16

Integer.valueOf ()

los valueOf() se envía en tres sabores:

  • valueOf(String s) – Acepta una cadena y la analiza en un entero
  • valueOf(int i) – Acepta un int y lo analiza en un entero
  • valueOf(String s, int radix) – Acepta una cadena y devuelve un entero que representa el valor y luego lo analiza con la base dada

los valueOf() método, a diferencia del parseInt() método, devuelve un Integer en lugar de un primitivo int y también lanza un NumberFormatException si la cadena no se puede convertir correctamente y solo acepta números decimales:

int i = 10;
String string1 = "100";
String string2 = "100";
String string3 = "Google";
String string4 = "20";

int number1 = Integer.valueOf(i);
int number2 = Integer.valueOf(string1); 
int number3 = Integer.valueOf(string3, 32); 
int number4 = Integer.valueOf(string4, 8); 

System.out.println("Parsing int " + i + ": " + number1);
System.out.println("Parsing String "" + string1 + "": " + number2);
System.out.println("Parsing String "" + string3 + "" in base 32: " + number3);
System.out.println("Parsing String "" + string4 + "" in base 8: " + number4);

Ejecutar este fragmento de código producirá:

Parsing int 10: 10
Parsing String "100": 100
Parsing String "Google" in base 32: 562840238
Parsing String "20" in base 8: 16

Integer.decode ()

los decode() El método acepta un solo parámetro y viene en un sabor:

  • decode(String s) – Acepta una cadena y la decodifica en un entero

los decode() El método acepta números decimales, hexadecimales y octales, pero no admite binarios:

String string1 = "100";
String string2 = "50";
String string3 = "20";

int number1 = Integer.decode(string1);
int number2 = Integer.decode(string2); 
int number3 = Integer.decode(string3); 

System.out.println("Parsing String "" + string1 + "": " + number2);
System.out.println("Parsing String "" + string2 + "": " + number2);
System.out.println("Parsing String "" + string3 + "": " + number3);

Ejecutar este fragmento de código producirá:

Parsing String "100": 50
Parsing String "50": 50
Parsing String "20": 20

Conclusión

Hemos cubierto uno de los temas fundamentales de Java y los problemas comunes que enfrentan los desarrolladores: convertir una cadena en un entero o un entero utilizando las herramientas que se incluyen con el JDK.

About the author

Ramiro de la Vega

Bienvenido a Pharos.sh

Soy Ramiro de la Vega, Estadounidense con raíces Españolas. Empecé a programar hace casi 20 años cuando era muy jovencito.

Espero que en mi web encuentres la inspiración y ayuda que necesitas para adentrarte en el fantástico mundo de la programación y conseguir tus objetivos por difíciles que sean.

Add comment

Sobre mi

Últimos Post

Etiquetas

Esta web utiliza cookies propias para su correcto funcionamiento. Al hacer clic en el botón Aceptar, aceptas el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad