Cómo verificar si una cadena es un número en Java
¡Hola a todos! Soy un desarrollador Java principiante y me encontré con este problema: necesito verificar si una cadena contiene solo dígitos o puede convertirse en un número. Por ejemplo, tengo una entrada de usuario y quiero asegurarme de que sea realmente un número antes de realizar operaciones matemáticas con él.
Esto es lo que he probado:
String input = "123";
if (input.matches("\\d+")) {
int number = Integer.parseInt(input);
System.out.println("Es un número: " + number);
}
Pero esto solo funciona para números enteros positivos. ¿Qué hacer con números negativos, números de punto flotante (por ejemplo, "3.14") o números en notación científica (por ejemplo, "1.5e10")? También noté que el método `Integer.parseInt()` lanza una `NumberFormatException` si la cadena no es un número entero válido. ¿Cómo manejar correctamente todos estos casos?
Necesito una solución confiable que funcione para:
- Números enteros (positivos y negativos)
- Números de punto