Tester si une chaine est numérique

Fermé
ntsc28 - 4 mai 2004 à 14:26
 neils76 - 21 juin 2009 à 02:00
Comment on peut tester si une chaine de caractères est représente une valeur numérique?
La méthode Integer.ParseInt(String) retourne une exception si String contient autres caractères que les chiffres.
A voir également:

4 réponses

Arghtt !!!!!!!!
Même si le message est ancien, la réponse me fait mal au cuir ...

Les exceptions ne doivent servir :
1 - en alpha/beta mode :
A tout ce que l'on veut
2 - en mode test
A la gestion d'improbabilité (Malfonctionnement du logiciel)
3 - en mode réel
A l'interception de dysfonctionnements ayant quelque(s) interaction(s) avec le système

En aucun cas on ne doit utiliser les exceptions comme une bouée de secours !
Il faut juste tester le code de retour d'une fonction avant de poursuivre et cesser d'utilise le "throw" à mauvais escient !!!!!

Les exceptions ne doivent servir que dans des cas extrèmes !!!!!!!!

Les utiliser systématiquement dénote une mauvaise programmation !!!!!!!!!!!!!

unsigned short i = 1, j = 0;
i /= j;
On pose une gestion d'exception ou l'on teste la nullité du diviseur avant de se planter ????
unsigned short i = 1, j = 0;
i = j ? i/j : 0;

La réflexion avant l'action !!!!!!
1
Yop,

pour tester si c'est une valeur numérique, il faut tester l'exception NumberFormatException

++

Nico
0
Ok merci!
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
4 mai 2004 à 14:35
Ben tu fais un simple try/catch, c'est fait pour... non ?
-1
mkrzemin Messages postés 41 Date d'inscription samedi 24 avril 2004 Statut Membre Dernière intervention 7 novembre 2012 1
4 mai 2004 à 16:48
euh... C'est quoi un try/catch ?

Merci par avance,
Mickaël
0
Nico > mkrzemin Messages postés 41 Date d'inscription samedi 24 avril 2004 Statut Membre Dernière intervention 7 novembre 2012
4 mai 2004 à 17:01
try {
//code
} catch(NumberFormatException){
//erreur
}

cela te permet de lever une erreur avant qu'elle ne plante le programme. En fait c'est toi qui gère l'erreur plutot que le programme.

++

Nico
0