fandezizou
Messages postés16Date d'inscriptionvendredi 28 octobre 2005StatutMembreDernière intervention28 septembre 2006
-
25 sept. 2006 à 20:41
super_toinou
Messages postés764Date d'inscriptionmardi 25 mai 2004StatutMembreDernière intervention 8 mars 2011
-
29 sept. 2006 à 19:52
Bonjour,
J'ai un petit problème de députant. J'ai besoin de votre aide comme toujours. Ma route est longue
J'arrive pas à savoir le nombre de chiffres saisit un utilisateur. J'avais ça mais j'avais oublié de tenir compte de quelque chose :
while(quotient<=0)
{
System.out.print("\nEntrer le numéro de l'ouvrage (un nombre de 5 chiffres) :\t");
C=Clavier.lireInt();
quotient=C/10000; // on divise par 10000 pour trouver le premier chiffre
System.out.println("");
}
le problème c'est que si l'utilisateur saisie "456666666" ça marchera alors que je veux ke 5 chiffrers.
et si je fait ((quotien <=0) || (quotien >10)) ça marchera pas si on saisi un chiffre qui commence par 0. "01234" = 5 chiffres mais ne rentrent pas dans l'intervalle.
Je ne sais pas quoi faire et j'ai besoin de votre aide....
Mais je suis vraiment un débutant.
Meci beaucoup.
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013129 25 sept. 2006 à 21:09
Fait plutôt un LireString et teste la longueur du string, et enfin, parse le en Integer, ce qui donne :
C=Clavier.lireString();
if (C.length() == 5) {
Integer result = Integer.parseInteger(C);
}
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201339 25 sept. 2006 à 21:55
Salut :
La solution de
DARKSIDIOUS donne le bon résultat, mais je vois une faute de frappe.
String C = Clavier.lireString ();
if (C.length () == 5) {
int entier = Integer.parseInt (C);
}
Un entier avec 5 chiffres est compris entre 0 et 99999 donc une simple comparaison suffira.
int C = Clavier.lireInt ();
if (C>=0 && C<=99999) {
//...
}
else {
//...
}
super_toinou
Messages postés764Date d'inscriptionmardi 25 mai 2004StatutMembreDernière intervention 8 mars 20116 26 sept. 2006 à 10:39
tu devrais valider la réponse de darksidious
également as tu fais gaffe à si l utilisateur rentre des lettres a la place de chiffes ca donne quoi ??
++ Toinou
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201339 26 sept. 2006 à 13:38
Salut :
On ne dois pas se préoccuper du cas où l'utilisateur tappe des lettres en effet ceci doit être l'affaire de la méthode lireInt () de la classe Clavier qui devra normalement levé une exception pour signaler qu'il est impossible de convertir une chaîne entier.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201339 26 sept. 2006 à 21:50
Salut :
A propos de la solution de DARKSIDIOUS si on choisie une chaine avec 5 chiffres mais avec des espaces on va avoir des résultats erronées.
Donc on doit convertir notre chaîne en entier puis on teste s'il est de 5 chiffres
(compris entre 0 et 99999).
fandezizou
Messages postés16Date d'inscriptionvendredi 28 octobre 2005StatutMembreDernière intervention28 septembre 2006 28 sept. 2006 à 22:48
Oui j'approuve votre idée mais imaginons que l'utilisateur saisit "00145" qui est un nombre de 5 chiffres en le convertissant en String et le reconvertir en Int les 0 disparait.
mais la conversion en string garde les deux 0 donc c'est magique.
Bref il y'a un point super_toinou a remarqué c si l'utilisateur saisit des chaine de caractéres, on se fera avoir dans ce cas....
Mais j'approve tout ce que vous m'avez dis j'apprend j'apprend...vous me donner des notions et je remercie.
super_toinou
Messages postés764Date d'inscriptionmardi 25 mai 2004StatutMembreDernière intervention 8 mars 20116 29 sept. 2006 à 19:52
alors j te sors un code rapidos comme ca
String c = Clavier.lireString();
//si l utilisateur a saisi qque chose sur 5 caractères
if((c!=null)&&(c.length()==5)){
//si c est bien un chiffre (accepte 00125)
if(c.matches("^[0-9]*")){
int entier = Integer.parseInt (C);
et t es tranquile
}
}
++ Toinou