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

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

    ++

    Nico
    0
    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