Tester si une chaine est numérique

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

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

      ++

      Nico
      0
      1. Modérateur
        Ben tu fais un simple try/catch, c'est fait pour... non ?
        -1
        1. euh... C'est quoi un try/catch ?

          Merci par avance,
          Mickaël
          0
        2. @mkrzemintry {
          //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