Post Top Ad

Your Ad Spot

viernes, 5 de julio de 2019

Java convertir cadena a entero

Introducción

Convertir una Stringint, o su respectiva clase envoltura Integer, es una operación común y simple. Lo mismo ocurre al revés, convirtiendo un Integer en String .
Hay varias formas de lograr esta conversión simple utilizando métodos incorporados al JDK.

Convertir cadena a entero

Para convertir String a Integer o int, hay cuatro enfoques integrados. La clase contenedora Integerproporciona algunos métodos específicamente para este uso parseInt()valueOf()decode(), aunque también podemos usar su constructor y pasarle una cadena.
Estos tres métodos tienen diferentes tipos de retorno:
  • parseInt()- Vuelve 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()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 Integercon la ayuda del valueOf()método en lugar de confiar en el constructor. Esto se debe a que el valueOf()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 ()

El parseInt()método se envía en dos sabores:
  • parseInt(String s) - Aceptando el String que nos gustaría analizar.
  • parseInt(String s, int radix) - Aceptar la cadena, así como la base del sistema de numeración
El parseInt()método convierte la cadena de entrada en una primitiva inty lanza una NumberFormatExceptionsi 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 dará como resultado:
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()barcos 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
El valueOf()método, a diferencia del parseInt()método, devuelve una en Integerlugar de una primitiva inty también arroja una NumberFormatExceptionsi 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 dará como resultado:
Parsing int 10: 10  
Parsing String "100": 100  
Parsing String "Google" in base 32: 562840238  
Parsing String "20" in base 8: 16  

Integer.decode ()

El decode()método acepta un solo parámetro y viene en un sabor:
  • decode(String s) - Acepta una cadena y la decodifica en un entero
El decode()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 dará como resultado:
Parsing String "100": 50  
Parsing String "50": 50  
Parsing String "20": 20  

Conclusión

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

No hay comentarios.:

Publicar un comentario

Dejanos tu comentario para seguir mejorando!

outbrain

Páginas