Je veux écrire un programme qui vérifie le mot de passe inséré pour:pour la validation du mot de passe
- longueur est au moins 8
- Au moins 1 lettre majuscule
- Au moins 1 lettre minuscule
- Au moins 3 chiffres
J'ai écrit ce programme, mais il ne me donne pas la bonne sortie:
import java.util.Scanner;
public class Question5 {
public static void main(String[] args) {
Scanner in = new Scanner (System.in);
System.out.println("Please enter your password: ");
String input = in.nextLine();
boolean flag = validate(input);
if (flag = true) {
System.out.println("password verified");
}
else {
System.out.println("not a good password");
}
}
public static boolean validate(String input) {
boolean flag = false;
int uppercaseCounter = 0;
int lowercaseCounter = 0;
int digitCounter = 0;
int letterCounter = 0;
for (int i = 0; i<(input.length()); i++) {
int totalCounter = digitCounter + letterCounter;
if (totalCounter >= 8 && digitCounter >= 3 && uppercaseCounter > 0 && lowercaseCounter > 0) {
flag = true;
}
else {
if (Character.isDigit(i)) {
digitCounter++;
}
if (Character.isLetter(i)) {
letterCounter++;
}
if (Character.isUpperCase(i)) {
uppercaseCounter++;
}
if (Character.isLowerCase(i)) {
lowercaseCounter++;
}
}
}
return flag;
}
}
Quelqu'un peut-il m'aider? Merci beaucoup!
'if (flag == true)' remarquez qu'il devrait être double '=='! – TDG
@TDG Ou, mieux encore, simplement 'if (flag)'. – jsheeran
quelle est l'entrée et la sortie alors? –