文字列を辞書ファイルリストと比較しようとしています。それが単語に直接一致する場合、弱い(風船)とみなされます。辞書ファイル(#balloon232)からの単語が含まれている場合、それは中程度と見なされます。もしどちらでもなければ、その強い。このコードでは、弱いと中程度の両方が正しく機能しますが、強いパスが入力されると、それは中程度であると言います。助けてくれてありがとう。statement whileループが正しく印刷されない場合
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");
}
}
ファイルから読み込んだ文字列をトリミングしますが、変数 'pass'はトリミングしません。たぶん 'pass'に先頭や末尾の空白が含まれているのでしょうか? 'pass'が '' pass ''と言っていて、ファイルからトリムされた文字列が' 'pass' 'だった場合、それは完全には一致しませんでしたが、" contains " –