2016-10-01 37 views
0

我一直在努力四個小時左右,但我正在接受我的密碼的字符串沒有檢查長度條件。我知道我在做一些愚蠢的錯誤,但不幸的是我無法弄清楚。最後,我決定從這裏請專家來幫助我。密碼不檢查Java中的長度條件

PS:我正在寫一個驗證密碼長度爲4到11個字符的函數,它包含一個大寫字符,一個小寫字符,一個數字和一個特殊字符。

public void validPassword(){ 
    String password; 
    boolean con = true; 

    Pattern[] passRegex = new Pattern[4]; 

    { 
     passRegex[0] = Pattern.compile(".*[A-Z].*"); 
     passRegex[1] = Pattern.compile(".*[a-z].*"); 
     passRegex[2] = Pattern.compile(".*\\d.*"); 
     passRegex[3] = Pattern.compile("[A-Za-z0-9]*"); 
    } 

    while(con){ 
     System.out.println("Enter Your Password Using Correct Format:"); 
     password = input.next(); 

      if(password.length() < 4 && password.length() > 11){ 
       System.out.println("Your Password Should Be 4 To 11 Characters Long"); 
      } 
      if(!passRegex[0].matcher(password).matches()){ 
       System.out.println("Your Password Must Contain Atleast One UpperCase Letter"); 
       } 
      if(!passRegex[1].matcher(password).matches()){ 
       System.out.println("Your Password Must Contain Atleast One LowerCase Letter"); 
       } 
      if(!passRegex[2].matcher(password).matches()){ 
       System.out.println("Your Password Must Contain Atleast One Digit"); 
       } 
      if(passRegex[3].matcher(password).matches()){ 
       System.out.println("Your Password Must Contain Atleast One Special Character"); 
       } 
      else{ 
      System.out.println("Your Password Is Correct"); 
      con = false; 
      } 
    } 
} 

回答

0
需要

或你的第一個條件不和

 if(password.length() < 4 || password.length() > 11){ 

 if(password.length() < 4 && password.length() > 11){ 
+0

OMG!看到我告訴你我正在犯一個愚蠢的錯誤。事實上,在編碼四個小時後我已經筋疲力盡了。 非常感謝幫助。 –