2017-09-16 19 views
-3

私は特定のポイントに従わなければならないパスワードチェックを行っています。パスワードの確認のための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; 
} 
+0

文字列の比較は.equals() ''で行われます。参照型の '=='では、2つの変数が同じメモリ位置を参照しているかどうかをチェックするだけです。 –

答えて

-2

は、次の2つの文字列ではなく、!=または==を比較する際に.equals()を使用する必要があるので、それは次のようになります。

} else if (!password1.equals(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.equals(password2)){ 
     valid = true; 
    } 
+0

OBVIOUS duplicateには回答しないでください) – azro

+0

@azro私の回答を最初に投稿したとき、質問は重複しているとはみなされませんでした。 – Ocracoke

+0

今、あなたは知っているでしょう、毎月この重複があります^^ – azro

関連する問題