沒關係,所以這是很長的。我正在爲課程開展一個項目,並給出了有關如何做的示例。我對此很新,所以我做了我認爲我可以做到但我似乎無法得到這個權利,並可能在此代碼中有大量的錯誤和不正確的東西。這是一個密碼認證系統,只是它的一半。我註釋掉了生成密碼功能,因爲我還沒有到那裏。整個程序都會編譯,但總會產生密碼錯誤。需要幫助的大塊項目。新的Java編程
public class FinalLab7
{
public static void main(String[] args)
{
// if (args.length == 0) // Generate password
//{
//System.out.println("Your new password is: " + generateValidPassword());
//}
if (args.length == 1) // Test password
{
System.out.print("The password you entered, " + args[0]);
if (isValidPassword(args[0]))
{
System.out.println(" is a valid password");
}
else
{
System.out.println(" is NOT a valid password");
}
}
else // To many command line arguments, educate user
{
System.out.println();
System.out.println("This program takes either zero or one parameter.");
System.out.println("When run with zero parameters it will generate a password.");
System.out.print("When run with one parameter it will test whether");
System.out.println(" the parameter is a valid password.");
System.out.println();
System.out.println("A valid password has the following four properties:");
System.out.println("1. A valid password contains between 8 and 14 characters, inclusive.");
System.out.println("2. A valid password contains two or more uppercase letters [A-Z].");
System.out.println("3. A valid password contains two or more lowercase letters [a-z]");
System.out.println("4. A valid password contains two or more numbers [0-9]");
System.out.println();
System.out.println();
}
}
static private boolean isValidPassword(String testPassword)
{
boolean returnValue = false;
int uppercasecount = 0;
int lowercasecount = 0;
int numbercount = 0;
if(uppercasecount>=2&&lowercasecount>=2&&numbercount>=2)
{
returnValue = true;
}
return returnValue;
}
static public boolean CharacterIsNumber(char testChar)
{
int numbercount = 0;
boolean returnValue = false;
switch (testChar)
{
case '0':
returnValue = true;
//numbercount++;
break;
case '1':
returnValue = true;
//numbercount++;
break;
case '2':
returnValue = true;
//numbercount++;
break;
case '3':
returnValue = true;
//numbercount++;
break;
case '4':
returnValue = true;
//numbercount++;
break;
case '5':
returnValue = true;
//numbercount++;
break;
case '6':
returnValue = true;
//numbercount++;
break;
case '7':
returnValue = true;
//numbercount++;
break;
case '8':
returnValue = true;
//numbercount++;
break;
case '9':
returnValue = true;
//numbercount++;
break;
}
numbercount++;
return returnValue;
}
static public boolean CharacterIsUppercase(char testChar)
{
int uppercasecount = 0;
boolean returnValue = false;
switch (testChar)
{
case 'A':
returnValue = true;
//uppercasecount++;
break;
case 'B':
returnValue = true;
//uppercasecount++;
break;
case 'C':
returnValue = true;
//uppercasecount++;
break;
case 'D':
returnValue = true;
//uppercasecount++;
break;
case 'E':
returnValue = true;
//uppercasecount++;
break;
case 'F':
returnValue = true;
//uppercasecount++;
break;
case 'G':
returnValue = true;
//uppercasecount++;
break;
case 'H':
returnValue = true;
//uppercasecount++;
break;
case 'I':
returnValue = true;
//uppercasecount++;
break;
case 'J':
returnValue = true;
//uppercasecount++;
break;
case 'K':
returnValue = true;
//uppercasecount++;
break;
case 'L':
returnValue = true;
//uppercasecount++;
break;
case 'M':
returnValue = true;
//uppercasecount++;
break;
case 'N':
returnValue = true;
//uppercasecount++;
break;
case 'O':
returnValue = true;
//uppercasecount++;
break;
case 'P':
returnValue = true;
//uppercasecount++;
break;
case 'Q':
returnValue = true;
//uppercasecount++;
break;
case 'R':
returnValue = true;
//uppercasecount++;
break;
case 'S':
returnValue = true;
//uppercasecount++;
break;
case 'T':
returnValue = true;
//uppercasecount++;
break;
case 'U':
returnValue = true;
//uppercasecount++;
break;
case 'V':
returnValue = true;
//uppercasecount++;
break;
case 'W':
returnValue = true;
//uppercasecount++;
break;
case 'X':
returnValue = true;
//uppercasecount++;
break;
case 'Y':
returnValue = true;
//uppercasecount++;
break;
case 'Z':
returnValue = true;
//uppercasecount++;
break;
}
uppercasecount++;
return returnValue;
}
static public boolean CharacterIsLowercase(char testChar)
{
int lowercasecount = 0;
boolean returnValue = false;
switch (testChar)
{
case 'a':
returnValue = true;
//lowercasecount++;
break;
case 'b':
returnValue = true;
//lowercasecount++;
break;
case 'c':
returnValue = true;
//lowercasecount++;
break;
case 'd':
returnValue = true;
//lowercasecount++;
break;
case 'e':
returnValue = true;
//lowercasecount++;
break;
case 'f':
returnValue = true;
//lowercasecount++;
break;
case 'g':
returnValue = true;
//lowercasecount++;
break;
case 'h':
returnValue = true;
//lowercasecount++;
break;
case 'i':
returnValue = true;
//lowercasecount++;
break;
case 'j':
returnValue = true;
//lowercasecount++;
break;
case 'k':
returnValue = true;
//lowercasecount++;
break;
case 'l':
returnValue = true;
//lowercasecount++;
break;
case 'm':
returnValue = true;
//lowercasecount++;
break;
case 'n':
returnValue = true;
//lowercasecount++;
break;
case 'o':
returnValue = true;
//lowercasecount++;
break;
case 'p':
returnValue = true;
//lowercasecount++;
break;
case 'q':
returnValue = true;
//lowercasecount++;
break;
case 'r':
returnValue = true;
//lowercasecount++;
break;
case 's':
returnValue = true;
//lowercasecount++;
break;
case 't':
returnValue = true;
//lowercasecount++;
break;
case 'u':
returnValue = true;
//lowercasecount++;
break;
case 'v':
returnValue = true;
//lowercasecount++;
break;
case 'w':
returnValue = true;
//lowercasecount++;
break;
case 'x':
returnValue = true;
//lowercasecount++;
break;
case 'y':
returnValue = true;
//lowercasecount++;
break;
case 'z':
returnValue = true;
//lowercasecount++;
break;
}
lowercasecount++;
return returnValue;
}
}
我評論了幾個不同的部分,如uppercasecount ++函數,因爲我想,沒有工作的不同方法。本部分應檢查密碼是否有2個大寫字母,2個小寫字母和2個數字,並根據情況顯示「您輸入的密碼有效或無效」。這隻會每次顯示無效。
你能給我們一些預期的輸入/輸出與你得到什麼?另外,出於好奇,爲什麼不使用[Character](http://docs.oracle.com/javase/7/docs/api/java/lang/Character.html)類中定義的靜態方法如isDigit和isUpperCase()? – PakkuDon 2014-10-19 23:55:11
減少這些長開關語句的提示:char只是ASCII表中的一個無符號值。這些值也一個接一個地出現。也就是說,'a'出現在'b'之前,但不一定在'Z'之後。這意味着您可以測試一個範圍而不是長開關語句。例如,您可以說, ** if(testChar> ='a'&& testChar <='z'){ returnValue = true; } lowerCaseCount ++; return lowerCaseCount; ** 來自Character類的其他方法,比如@PakkuDon指出的方法也是如此。 – 2014-10-19 23:59:08
我在java中仍然是一個新手,我將離開迄今爲止在我的課程中學到的東西(我相信這對我的知識來說有點太複雜了)。這裏的任何幫助或小型教學都會非常有幫助。 – 2014-10-19 23:59:40