Je cherche une méthode qui retourne un booléen si la chaîne est passée est un nombre valide (par exemple "123.55e-9", "-333 556 "). Je ne suis pas veulent simplement faire:Bibliothèque Java pour vérifier si une chaîne contient un nombre * sans * exceptions
public boolean isANumber(String s) {
try {
BigDecimal a = new BigDecimal(s);
return true;
} catch (NumberFormatException e) {
return false;
}
}
De toute évidence, la fonction doit utiliser une machine d'état (DFA) pour analyser la chaîne pour faire des exemples sûrs invalides ne badine pas (par exemple « -21, 22,22,2 "," 33-2 "). Savez-vous si une telle bibliothèque existe? Je ne veux pas vraiment l'écrire moi-même car c'est un problème si évident que je suis sûr que je vais réinventer la roue.
Merci,
Nick
Pourquoi exactement voulez-vous pas utiliser l'analyse de BigDecimal? C'est la manière la plus simple, vraiment. – Jorn
Je voudrais savoir pourquoi vous ne voulez pas utiliser l'extrait que vous avez donné? Si vous avez besoin d'utiliser le numéro, vous devez l'analyser? C'est juste pour valider qu'une chaîne peut aller au backend tel quel? –
Parce que les exceptions ne sont pas valables pour ce cas. Les exceptions sont, bien, pour les exceptions pas pour le contrôle du programme. – Malax