En Java, mientras operamos con cadenas, hay ocasiones en las que necesitamos convertir un número representado como una cadena en un tipo entero. Normalmente hacemos esto porque podemos operar con un conjunto amplio y flexible de operaciones sobre cadenas. El método generalmente utilizado para convertir cadenas a enteros en Java es parseInt () del clase de cadena .
En este artículo, veremos cómo convertir una cadena a int en Java.

Programa para convertir cadenas Java a int
Tomemos un ejemplo de inmediato para acostumbrarnos al método parseInt() en funcionamiento:
xor c++
Java
// Java program to demonstrate working parseInt()> // Where No NumberFormatException is Thrown> // Main class> public> class> GFG {> >// Main driver method> >public> static> void> main(String args[])> >{> >// Custom wide-varied inputs to illustrate> >// usage of valueOf() method> >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>);> >// Print commands on console> >System.out.println(decimalExample);> >System.out.println(signedPositiveExample);> >System.out.println(signedNegativeExample);> >System.out.println(radixExample);> >System.out.println(stringExample);> >}> }> |
>
>Producción
20 20 -20 32 11670324>
Método parseInt() en Java
Hay dos variantes de este método:
- parseInt(Cadena s): Esta función analiza el argumento de cadena como un entero decimal con signo.
- parseInt(Cadena s, int base): Esta función analiza el argumento de cadena como un entero con signo en la base especificada por el segundo argumento.
Sintaxis de parseInt
public static int parseInt(String str); public static int parseInt(String str, int radix);>
Parámetros
- cadena: S cadena que debe convertirse a un número entero.
- base: se utiliza mientras se analiza la cadena.
Tipo de devolución
- Ambos métodos convierten la cadena en su equivalente entero. La única diferencia es la de la base del parámetro. El primer método se puede considerar con base = 10 (Decimal).
Excepción lanzada
- Excepción de formato de número Este método lo lanza si se produce alguna de las siguientes situaciones.
Recuerde ciertos puntos clave asociados con ambas variantes:
- La cadena puede ser nula o de longitud cero.
- El valor representado por la cadena no es un valor de tipo int
- Específicamente para la variante parseInt(String s, int radix) de la función:
- La base del segundo argumento es menor que Character.MIN_RADIX o mayor que Character.MAX_RADIX
- Cualquier carácter de la cadena no es un dígito de la base especificada, excepto que el primer carácter puede ser un signo menos '-' ('u002D') o un signo más '+' ('u002B') siempre que la cadena sea más largo que la longitud 1
- Si su cadena tiene ceros a la izquierda, el método parseInt() los ignorará.
Los casos de Método parseInt()
Tomemos un fragmento de código aleatorio para comprender mejor las ilustraciones.
Caso 1: parseInt(20, 16)
devuelve 32, (2)*16^1 + (0)*16^0 = 32
Caso 2: parseInt(2147483648, 10)
lanza una excepción NumberFormatException
Caso 3: parseInt(99, 8)
lanza una excepción NumberFormatException
Razón: El 9 no es un dígito aceptado en el sistema numérico octal.Caso 4: parseInt(geeks, 28)
lanza una excepción NumberFormatException
Caso 5: parseInt(geeks, 29)
devuelve 11670324, Razón: El sistema numérico con base 29 puede tener dígitos del 0 al 9 seguidos de caracteres a,b,c… hasta s
Caso 6: parseInt(geeksforgeeks, 29)
lanza una excepción NumberFormatException como Razón: el resultado no es un número entero.
Excepciones de formato numérico del método parseInt()
Excepciones causadas por el método parseInt() que se menciona a continuación:
Java
// Java Program to Demonstrate Working of parseInt() Method> // Where NumberFormatException is Thrown> // Main class> public> class> GFG {> >// Main driver method> >public> static> void> main(String args[])> >{> >// NumberFormatException> >String invalidArguments =>''>;> > >// invalidArguments Error empty string> >// passed> >int> emptyString> >= Integer.parseInt(invalidArguments);> > >// The Converted Intger is out of bound> >// Too large to be called Integer> >int> outOfRangeOfInteger> >= Integer.parseInt(>'geeksforgeeks'>,>29>);> > >// Domain Number System> >int> domainOfNumberSystem> >= Integer.parseInt(>'geeks'>,>28>);> >// Print commands on console> >System.out.println(emptyString);> >System.out.println(outOfRangeOfInteger);> >System.out.println(domainOfNumberSystem);> >}> }> |
>
>
Producción

De manera similar, podemos convertir la cadena a cualquier otro tipo de datos primitivo:
- parseLong(): analiza la cadena a Long
- analizarDoble(): analiza la cadena para duplicarla si queremos convertir la cadena a un número entero sin usar parseInt() , nosotros podemos usar valor de() método . También tiene dos variantes similares a parseInt()
- Diferencia entre parseInt() y valueOf(): parseInt() analiza la cadena y devuelve el tipo entero primitivo. Sin embargo, valueOf() devuelve un objeto entero.
Nota: valueOf() usa parseInt() internamente para convertir a un número entero.
Otro enfoque para convertir una cadena en un número entero
Además del método parseInt() en Java, existe otro método para la conversión de cadenas a enteros. A continuación se muestra la implementación del método valueOf() que es
método valor de ()
El método Integer.valueOf() convierte una cadena en un objeto entero. Entendamos esto con un ejemplo.
A continuación se muestra la implementación del método anterior:
Java
// Java Program to Demonstrate> // Working of valueOf() Method> // Main class> public> class> GFG {> >// Main driver method> >public> static> void> main(String args[])> >{> >// Custom wide-varied inputs to illustrate> >// usage of valueOf() method> >int> decimalExample = Integer.valueOf(>'20'>);> >int> signedPositiveExample = Integer.valueOf(>'+20'>);> >int> signedNegativeExample = Integer.valueOf(>'-20'>);> >int> radixExample = Integer.valueOf(>'20'>,>16>);> >int> stringExample = Integer.valueOf(>'geeks'>,>29>);> >// Print statements> >System.out.println(decimalExample);> >System.out.println(signedPositiveExample);> >System.out.println(signedNegativeExample);> >System.out.println(radixExample);> >System.out.println(stringExample);> >}> }> |
>
>Producción
20 20 -20 32 11670324>