Avatar ·

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