Artículo original escrito por Thanoshan MV
Artículo original Java String to Int – How to Convert a String to an Integer
Traducido y adaptado por Santiago Yanguas
Los objetos de cadena son representados como una cadena de caracteres.
Si has trabajado en Java Swing, tiene componentes como JTextField y JTextArea que utilizamos para obtener nuestra entrada de la GUI. Toma nuestra entrada como una cadena de caracteres.
Si queremos hacer una calculadora simple usando Swing, tenemos que averiguar cómo convertir una cadena en un número entero. Esto nos lleva a la pregunta: ¿cómo podemos convertir una cadena en un número entero?
En Java, podemos utilizar Integer.valueOf()
e Integer.parseInt()
para convertir una cadena en un entero.
1. Utiliza Integer.parseInt() para convertir una cadena en un número entero
Este método devuelve la cadena como un tipo primitivo int. Si la cadena no contiene un entero válido, lanzará una NumberFormatException.
Por lo tanto, cada vez que convirtamos una cadena en un int, tenemos que ocuparnos de esta excepción colocando el código dentro del bloque try-catch.
Consideremos un ejemplo de conversión de una cadena a un int utilizando Integer.parseInt()
:
Intentemos romper este código introduciendo un entero no válido:
Como puedes ver en el código anterior, hemos intentado convertir 25T
en un número entero. Esto no es una entrada válida. Por lo tanto, debes lanzar una NumberFormatException.
Este es el resultado del código anterior:
A continuación, veremos cómo convertir una cadena de caracteres en un número entero utilizando el método Integer.valueOf()
.
2. Utiliza Integer.valueOf() para convertir una cadena en un número entero
Este método devuelve la cadena como un objeto entero. Si miras la documentación de Java, Integer.valueOf()
devuelve un objeto entero que equivale a un nuevo Integer(Integer.parseInt(s))
.
Colocaremos nuestro código dentro del bloque try-catch cuando utilicemos este método. Consideremos un ejemplo utilizando el método Integer.valueOf()
:
Ahora, intentemos romper el código anterior introduciendo un número entero no válido:
Al igual que en el ejemplo anterior, el código anterior lanzará una excepción.
Este es el resultado del código anterior:
También podemos crear un método para comprobar si la cadena pasada es numérica o no antes de utilizar los métodos mencionados.
He creado un método sencillo para comprobar si la cadena pasada es numérica o no.
La salida es:
El método isNumeric()
toma una cadena como argumento. Primero comprueba si es null
o no. Después utilizamos el método matches()
para comprobar si contiene dígitos del 0 al 9 y un carácter de punto.
Esta es una forma sencilla de comprobar los valores numéricos. Puedes escribir o buscar en Google expresiones regulares más avanzadas para capturar valores numéricos dependiendo de tu caso de uso.
Es una buena práctica comprobar si la cadena pasada es numérica o no antes de intentar convertirla a entero.
Gracias por leer.
Imagen por ?? Janko Ferlič en Unsplash
Puedes conectarte conmigo en Medium.
¡Feliz codificación!