awesome54 a écrit :
Bonjour j'ai un soucis de programmation dans le programme suivant :
Code :
- void main(){
- int compteur; int mdp1long;
- compteur = 0;
- String mdp1 , mdp2 ;
- mdp1= readString() ;
- mdp2= readString();
- if ( mdp1.equals(mdp2)){
- println (" les mot de passes sont identiques" );
- }
- else{
- println(" les mots de passes ne sont pas identiques, merci de recommencer." );
- }
- println(mdp1.length());
- mdp1long=mdp1.length();
- if (mdp1long<6){
- println("Ce mot de passe est trop court, veuillez en saisir un autre" );
- }
- else {
- println("Longueur du mot de passe satisfaisante" );
- compteur=compteur+1;
- }
- byte [ ]code=mdp1.getBytes();
- for (int i= 0; i<mdp1long; i++){
- }
- }
|
Alors je dois vérifier la force du mot depasse selon 3 critères : longueur / présence de MAJ / présence de chiffres...
J'ai validé la longueur mais je n'arrive pas a afficher un code ascii pour CHAQUE caractere entrés par l'utilisateur ....
Auriez vous une formule magique ou un indice de programmation svp ^^ Merci d'avance pour toute aide
|
Je ne sais pas très bien ce que tu veux exactement faire, mais j'ai cependant quelques suggestions.
Tout d'abord, quand un test échoue, il n'est pas forcément nécessaire de continuer les autres. Par exemple, tu pourrais terminer la fonction main() en cours avec un return.
Java ne travaille pas avec le code ascii mais avec du code Unicode sur 16 bits. Tu ne peux pas directement tester la valeur "numérique" des caractères. Pourquoi ne pas tester avec des lettres. Par exemple
Code :
- int i = 0;
- boolean foundDigit = false;
- while (i < mdp1long) {
- }
|