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