Probleme java

Fermé
zuliani - 3 nov. 2010 à 00:03
 Niak - 3 nov. 2010 à 10:34
Bonjour,

Voila je suis coincer dans une partie de mon programme,

je dois faire entrer par l utilisateur 3chiffre suivie d une lettre, mais la lettre dois etre soit A,B ou C, mais les majuscules et les miniscules n ont pas d importance.
j ai essayer de la faire avec la boucle for mais je n ai pas reussi suivie de la lettre.

merci pour votre aide
A voir également:

2 réponses

Bonsoir,

En intégrant un IF pour vérifier que c'est bien un A ou un B ou un C çà devrait marcher.

Une autre solution consisterait à faire un switch.

Si l'utilisateur saisit une autre lettre tu traites une exception ?
0
Utilisateur anonyme
3 nov. 2010 à 09:37
Salut,

Avec substring, tu devrais t'en sortir:

-La première chose à faire, c'est vérifier que la longueur du String dans lequel sont saisis les chiffres et la lettre est bien 4.
Si elle est différente tu signales l'erreur et tu redemandes la saisie.
Si elle est 4 tu continues.

-Tu extrais avec substring les 3 premiers caractères soit directement dans un int, soit d'abord dans un String. Je te conseille cette seconde méthode pour l'instant.
Ensuite tu convertis en int le String obtenu qui normalement contient 3 chiffres.
Si ce ne sont pas strictement 3 chiffres, java lèvera une exception.
À toi de voir comment "catcher" ou plus exactement "try catcher".
S'il y a exception, tu signales l'erreur et redemandes la saisie.
Si non, tu continues.

-Tu extrais également en utilisant substring ce qui devrais être la lettre a, b ou c (ou A, B ou C).
Si c'est correcte, c'est que la longueur, le numérique et la lettre sont OK et tu peux éventuellement demander si on veut saisir une autre chaîne...
Si la lettre n'est pas correcte, tu affiches l'erreur et redemandes la saisie.

Je pense t'avoir donné une piste mais si besoin est n'hésite pas à demander de l'aide.

Cordialement,

Dan
0
Y'a plus simple je pense. Après avoir fait saisir la chaîne de caractère à l'utilisateur tu fait une vérification via une expression régulière du genre \^[0-9]{3}[a|b|c|A|B|C]$\.
Tu mets le test dans une boucle while et tant que ça passe pas tu redemandes la saisie.
0
Utilisateur anonyme
3 nov. 2010 à 10:29
Salut,

Bien entendu Niak, mais ne sachant pas si zuliani connaît les expressions régulières, j'ai donné la piste substring, et en plus en détaillant...
0
Oui bien sur, vu la question je suppose que les expressions régulières ne sont pas encore à son programme.
0