Mientras operamos con strings, hay momentos en los que necesitamos convertir un número representado como una string en un tipo entero. El método generalmente utilizado para convertir String a Integer en Java es parseInt() . Este método pertenece a la clase Integer en el paquete java.lang. Toma una string válida como parámetro y la analiza en un tipo de datos primitivo int. Solo acepta String como parámetro y al pasar valores de cualquier otro tipo de datos, produce un error debido a tipos incompatibles.
Existen dos variantes de este método:
Sintaxis:
public static int parseInt(String s) throws NumberFormatException
public static int parseInt(String s, int radix) throws NumberFormatException
Ejemplo:
// Java program to demonstrate working parseInt() public class GFG { public static void main(String args[]) { int decimalExample = Integer.parseInt("20"); int signedPositiveExample = Integer.parseInt("+20"); int signedNegativeExample = Integer.parseInt("-20"); int radixExample = Integer.parseInt("20", 16); int stringExample = Integer.parseInt("geeks", 29); System.out.println(decimalExample); System.out.println(signedPositiveExample); System.out.println(signedNegativeExample); System.out.println(radixExample); System.out.println(stringExample); } }
20 20 -20 32 11670324
Este método es un método estático que pertenece al paquete java.lang que devuelve el objeto entero relevante que contiene el valor del argumento pasado. Este método puede tomar un número entero o una string como parámetro. Pero cuando la string dada no es válida, proporciona un error. Este método también puede tomar un carácter como parámetro, pero la salida será su valor Unicode correspondiente. Este método siempre almacenará en caché valores en el rango de -128 a 127, inclusive, y puede almacenar en caché otros valores fuera de este rango.
Sintaxis:
public static Integer valueOf(int a)
public static Integer valueOf(String str)
public static Integer valueOf(String str, int base)
Ejemplo:
// Java program to illustrate the // java.lang.Integer.valueOf(int a) import java.lang.*; public class Geeks { public static void main(String[] args) { Integer obj = new Integer(10); // Returns an Integer instance // representing the specified int value System.out.println("Output Value = " + obj.valueOf(85)); } }
Output Value = 85
Diferencias entre Integer.parseInt() e Integer.valueOf()
- Integer.valueOf() devuelve un objeto Integer mientras que Integer.parseInt() devuelve un int primitivo.
// Program to show the use
// of Integer.parseInt() method
class
Test1 {
public
static
void
main(String args[])
{
String s =
"77"
;
// Primitive int is returned
int
str = Integer.parseInt(s);
System.out.print(str);
// Integer object is returned
int
str1 = Integer.valueOf(s);
System.out.print(str1);
}
}
Producción:7777
- Tanto String como integer pueden pasarse como parámetro a Integer.valueOf() mientras que solo String puede pasarse como parámetro a Integer.parseInt().
// Program to show that Integer.parseInt()
// cannot take integer as parameter
class
Test3 {
public
static
void
main(String args[])
{
int
val =
99
;
try
{
// It can take int as a parameter
int
str1 = Integer.valueOf(val);
System.out.print(str1);
// It cannot take an int as a parameter
// Hence will throw an exception
int
str = Integer.parseInt(val);
System.out.print(str);
}
catch
(Exception e) {
System.out.print(e);
}
}
}
Error de compilación:
prog.java:18: error: incompatible types: int cannot be converted to String int str = Integer.parseInt(val); ^ 1 error
- Integer.valueOf() puede tomar un carácter como parámetro y devolverá su valor Unicode correspondiente, mientras que Integer.parseInt() producirá un error al pasar un carácter como parámetro.
// Program to test the method
// when a character is passed as a parameter
class
Test3 {
public
static
void
main(String args[])
{
char
val =
'A'
;
try
{
// It can take char as a parameter
int
str1 = Integer.valueOf(val);
System.out.print(str1);
// It cannot take char as a parameter
// Hence will throw an exception
int
str = Integer.parseInt(val);
System.out.print(str);
}
catch
(Exception e) {
System.out.print(e);
}
}
}
Error de compilación:
prog.java:18: error: incompatible types: char cannot be converted to String int str = Integer.parseInt(val); ^ 1 error
tabla de diferencia
Entero.parseInt() | Entero.valorDe() |
---|---|
Solo puede tomar un String como parámetro. | Puede tomar una string así como un número entero como parámetro. |
Devuelve un valor int primitivo. | Devuelve un objeto Integer. |
Cuando se pasa un número entero como parámetro, produce un error debido a tipos incompatibles | Cuando se pasa un entero como parámetro, devuelve un objeto Integer correspondiente al parámetro dado. |
Este método produce un error (tipos incompatibles) cuando se pasa un carácter como parámetro. | Este método puede tomar un carácter como parámetro y devolverá el Unicode correspondiente. |
Esto va a la zaga en términos de rendimiento, ya que analizar una string lleva mucho tiempo en comparación con generar una. | Es probable que este método produzca un rendimiento de espacio y tiempo significativamente mejor al almacenar en caché los valores solicitados con frecuencia. |
Si necesitamos el tipo de datos int primitivo, se utilizará el método Integer.parseInt(). | Si se necesita el objeto Wrapper Integer, se utilizará el método valueOf(). |
Publicación traducida automáticamente
Artículo escrito por deepthisenthil y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA