我是一個新手Java編程人員,我試圖製作一個非常基本的用戶名/密碼程序。它的用戶名部分工作正常,但當我得到密碼時,它給我一些奇怪的問題。例如,當我們檢查一個大寫字母時,我發現它會發現一個很好的字母,但如果它沒有,它會輸出密碼中每個字符的錯誤信息。它通過數字檢查和長度檢查來做到這一點。如果你們中的任何一個人可以向我解釋這一點,而不是簡單的,因爲我還是Java新手,那真是太棒了。謝謝!Java ....爲輸入中的每個字符打印1個錯誤
do
{
if (count3 >0)
{
System.err.println("- At least 1 Uppercase");
System.err.println("- At least 1 number");
System.err.println("- At least 7 characters long.");
}
regPassword = input.nextLine();
regPasswordLen = regPassword.length();
for(int count = 0; count < regPasswordLen; count++)
{
if(Character.isUpperCase(regPassword.charAt(count)))
regPasswordUppercaseCheck = true;
else
{
System.err.println("Your password did not contain an Uppercase letter");
regPasswordUppercaseCheck = false;
}
if(regPassword.contains("1") || regPassword.contains("2") ||
regPassword.contains("3") || regPassword.contains("4") ||
regPassword.contains("5") || regPassword.contains("6") ||
regPassword.contains("7") || regPassword.contains("8") ||
regPassword.contains("9") || regPassword.contains("0"))
regPasswordNumCheck = true;
else
{
System.err.println("Your password did not contain at least 1 number.");
regPasswordNumCheck = false;
}
if (regPasswordLen >=7)
regPasswordLengthCheck = true;
else
{
System.err.println("Your password did not meet the minimum length requirements.");
regPasswordLengthCheck = false;
}
}
count3++;
}
while(!regPasswordUppercaseCheck || !regPasswordNumCheck || !regPasswordLengthCheck);
System.out.println("test");
您正在重置您的支票,並非所有這些條件同時爲真。 –
你似乎試圖一次做所有事情。我建議你將你的代碼分解成獨立解決密碼要求的每個部分的部分。一次解決每個小問題。增加可讀性,使代碼更易於開發和維護。 –
爲什麼不簡單地使用正則表達式而不是自己編碼所有的檢查? – Filip