2017-09-16 54 views
-3

我正在做一個密碼檢查,必須符合某些要點。有兩個用於密碼確認的文本字段,並且由於某種原因,當兩個密碼都符合所有內容並且相同時,它會進入「密碼不匹配」,即使他們這樣做,我也無法弄清楚原因!幫助讚賞。密碼檢查不工作 - 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

你需要比較兩個字符串,不!===時使用.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

請不要回答重複;) – azro

+0

@azro當我最初發布我的答案時,這個問題沒有被標記爲重複。 – Ocracoke

+0

現在你會知道,每月有這樣的重複^^ – azro