Verifier qu'un type char est un chiffe [JAVA]

Fermé
saotan Messages postés 1 Date d'inscription dimanche 17 janvier 2010 Statut Membre Dernière intervention 17 janvier 2010 - 17 janv. 2010 à 22:04
 Utilisateur anonyme - 18 janv. 2010 à 02:30
Bonjour,
je suis en pleine révision de partiels et mon partiels de JAVA est demain, je sais, je suis mal barré ^^.
Cependant je suis sur un éxercices qui demande,d'entrer un n° de securité social a 13chiffres.
La question 1) Demande de vérifier si il y a 13 caractères
J'ai réussi avec un .length().
Mais en 2) On me demande de vérifier que tous les caracteres sont des chiffres.
J'ai crée une boucle for qui parcous le String, et qui avec un charAt(i) devrait vérifier si l'élément d'indice i est un chiffre ou pas.
J'avais essayé une petite astuce que j'avais trouvé sur ce forum, en créant une variable int k;
et un char c;
et ai fait: c=num.charAt(i); (num étant le numero de secu)
et k=c-'0';
et avec un if(k<0&&k>9)
renvoi une valeur dans un switch/case qui n'est pas important dans le probleme ^^.

En clair j'aimerais savoir comment vérifier que tous les caractères sont des chiffres :(.
Je voulais vous remettre un peu en contexte voila.
Merci d'avance :) !
A voir également:

2 réponses

chuka Messages postés 965 Date d'inscription samedi 11 octobre 2008 Statut Membre Dernière intervention 29 juillet 2010 378
17 janv. 2010 à 22:55
Salut,
je pense que tu peux faire:
Character.isDigit('ton_char');
dans une boucle....mais tout tester d'un coup, je pense pas..à part avec un try catch mais c'est pas beau.......
@+
0
Utilisateur anonyme
18 janv. 2010 à 02:30
Salut,

Je te donne quand même la solution "try/catch" (il y en a d'autres, exemple avec les expressions régulières...) :

     //String numSecu = "1 90 03 44 102 012";
     String numSecu = "9 99 99 99 999 999";
     String numSecuSv = numSecu;
     numSecuSv = numSecuSv.replaceAll(" ", "");  // pour conserver la source
     System.out.println("\nnumSecuSv = " + numSecuSv);
         
     if (numSecuSv.length() > 13)
     {
        System.out.println("Trop long!!!...");
         return;
     }
   // Noter que le numéro de sécu ne peut etre converti en int
   // (trop long pour le type int) nous utiliserons le type long
      try
     {
        long numSs = Long.parseLong(numSecuSv);
     }
         catch(NumberFormatException nfe)
     {
         System.out.println("\nNon numerique!!!...)");
   // En réalité NumberFormatException concerne la "numéricité"
   // mais aussi la longueur du type utilisé, mais comme dans cet
   // exemple il y a le filtre de la longueur (13) ce ne peut pas
   // etre trop long pour le type long
         return;
     }


Cordialement,

Dan
0