私は特定のポイントに従わなければならないパスワードチェックを行っています。パスワードの確認のための2つのテキストフィールドがあります。何らかの理由で、両方のパスワードがすべてに準拠していて同じであれば、「パスワードは一致しません」と表示されますが、理由はわかりません。ヘルプは高く評価しました。パスワードチェックが機能しない - Java
public boolean passwordCheck(String password1, String password2) {
boolean valid = false;
do {
if(password1.length()>20) {
errorLabel.setText("* Password is too long");
System.out.println("Password is too long");
valid = false;
break;
} else if (password1.length()<4) {
errorLabel.setText("* Password is too short");
System.out.println("Password is too short");
valid = false;
break;
} else if (password1 != password2) {
System.out.println(password1 + "==" + password2);
errorLabel.setText("* Passwords do not match!");
System.out.println("Password do not match!");
valid = false;
break;
} else if (password1 == password2){
valid = true;
}
} while (!valid);
System.out.println("outside the loop" + valid);
return valid;
}
文字列の比較は.equals() ''で行われます。参照型の '=='では、2つの変数が同じメモリ位置を参照しているかどうかをチェックするだけです。 –