Tester si une chaine est numérique

ntsc28 -  
 neils76 -
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.

4 réponses

  1. neils76
     
    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
  2. Nico
     
    Yop,

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

    ++

    Nico
    0
  3. sebsauvage Messages postés 33284 Date d'inscription   Statut Modérateur Dernière intervention   15 684
     
    Ben tu fais un simple try/catch, c'est fait pour... non ?
    -1
    1. mkrzemin Messages postés 42 Statut Membre 1
       
      euh... C'est quoi un try/catch ?

      Merci par avance,
      Mickaël
      0
      1. Nico > mkrzemin Messages postés 42 Statut Membre
         
        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