我想檢查一個密碼是否至少有8個字符,只包含數字和字母。 這裏的問題是,即使我輸入了一個有效的密碼,它總是說'無效'。這是代碼。謝謝。驗證密碼
public static void main(String[] args)
{
String pw;
Scanner sc = new Scanner(System.in);
System.out.print("Enter a password: ");
pw = sc.next();
if(isValid(pw)==true)
{
System.out.println("Valid Password");
}
else
{
System.out.println("Invalid Password");
}
}
public static boolean isValid(String pw)
{
if(pw.length()<8)
{
return false;
}
else
{
for(int x=0; x<pw.length(); x++)
{
return Character.isLetterOrDigit(pw.charAt(x));
}
}
return true;
}
}
你調試了嗎?如果你輸入密碼,那麼'pw'是什麼,代碼實際返回的地方是什麼等等。 – luk2302
你意識到你的循環在檢查'isLetterOrDigit'在第一次檢查時返回,對嗎? – KevinO
您的循環邏輯完全關閉。請調試你的代碼,看看它有什麼瘋狂的無用回報。或者甚至更好:寫一些測試,看看哪些失敗。 – luk2302