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

saotan Messages postés 1 Statut Membre -  
 Utilisateur anonyme -
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 980 Statut Membre 378
 
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
 
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