さて、これは長いです。私はクラスのプロジェクトに取り組んでおり、何をすべきかの例が与えられました。私はこれに非常に慣れていないので、できると思ったことをしましたが、これを正しく行うことができず、おそらくこのコードに大量のエラーや不適切なものがあります。これはパスワード認証システムのためのもので、その半分にすぎません。まだそこに到達していないため、パスワード生成機能をコメントアウトしました。プログラム全体がコンパイルされますが、パスワードが正しくないことが常に生成されます。
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 つ含まれているかどうかを確認することになっており、場合によって「入力したパスワードは有効か無効か」と表示されます。これは毎回無効と表示されるだけです。