Ich versuche, eine Zeichenfolge, übergeben, an eine Wörterbuch-Dateiliste zu vergleichen. Wenn es einem Wort direkt entspricht, wird es als schwach (Ballon) betrachtet. Wenn es das Wort aus der Wörterbuchdatei (# balloon232) enthält, wird es als moderat angesehen. Weder, noch stark. In diesem Code funktionieren schwache und moderate beide korrekt, aber wenn ein starker Pass eingegeben wird, heißt es, dass es moderat ist. Danke für die Hilfe.Wenn Anweisung innerhalb While-Schleifen nicht korrekt drucken
public static void passwordStrength(String pass, String file2) {
boolean found2 = false;
boolean found3 = false;
try {
y = new Scanner(new File(file2));
z = new Scanner(new File(file2));
while (y.hasNextLine()) {
if (pass.equals(y.nextLine().trim())) {
System.out.println("\nYour password is weak");
found2 = true;
break;
}
}
while (z.hasNextLine()) {
if (pass.contains(z.nextLine().trim()) && !found2) {
System.out.println("\nYour password is moderate");
found3 = true;
break;
}
}
if (!found3 && !found2) {
System.out.println("\nYour password is strong");
}
y.close();
z.close();
} catch (Exception e) {
System.out.print("Error");
}
}
Sie schneiden die Zeichenfolgen ab, die Sie aus der Datei gelesen haben, aber nicht die Variable "pass". Vielleicht enthält 'pass 'führende oder nachfolgende Leerzeichen? Wenn 'pass' wäre, sagen wir" pass "' und eine getrimmte Zeichenfolge aus der Datei wäre "pass", wäre es keine exakte Übereinstimmung, aber es wäre eine "contains" -Match ... –