Avatar ·

Como verificar se uma string é um número em Java?

Olá a todos! Sou um desenvolvedor Java iniciante e me deparei com o seguinte problema: preciso verificar se uma string contém apenas dígitos ou pode ser convertida em um número. Por exemplo, tenho uma entrada do usuário e quero garantir que seja realmente um número antes de realizar operações matemáticas com ele. Aqui está o que tentei:
String input = "123";
if (input.matches("\\d+")) {
    int number = Integer.parseInt(input);
    System.out.println("É um número: " + number);
}
Mas isso funciona apenas para números inteiros positivos. E quanto a números negativos, números de ponto flutuante (por exemplo, "3.14") ou números em notação científica (por exemplo, "1.5e10")? Também notei que o método `Integer.parseInt()` lança uma `NumberFormatException` se a string não for um número inteiro válido. Como lidar corretamente com todos esses casos? Preciso de uma solução confiável que funcione para: - Números inteiros (positivos e negativos) - Números de ponto flutuante