암호의 유효성을 테스트하는 Java 프로그램을 작성 중입니다. 몇 가지 다른 문제 외에도, 나는 평평하지 않다. 그것은 잘 컴파일하지만 나는 그것을 시도하고 실행할 때 오류가 발생합니다.유효한 암호를 만들기 위해 문자열을 테스트하십시오.
실행할 때 내 문제는 내가해야하는 것처럼 작동하도록 코드를 가져올 수 없다는 것입니다. 사용자 입력 문자열을 읽고 코드에 의해 배치 된 일부 조건을 사용하여 유효성을 테스트해야합니다. 사용자가 세 가지 조건 모두에 맞는 유효한 암호를 입력 할 때까지 계속 실행됩니다. 이 코드는 이전에 실행되었을 때 잘못된 조건이 손상되었거나 모든 요구 사항을 충족 할 때 암호가 유효하지 않다고 말할 것입니다.
문제를 알지 못하기 때문에 코드에 무엇이 잘못된지 묻는 방법을 잘 모르겠습니다.
사전 조건은 코드에서 여러 가지 방법을 사용한다는 것입니다. 문자열이 아닌 숫자의 마지막 문자는, 루프가 끝없이있을 경우, 당신은 하나 개의 문자를 확인이 루프에서
import java.util.Scanner;
public class Test {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
// Prompt user to enter a password
System.out.print("Enter your password: ");
String x = input.nextLine();
UserInput(x);
}
public static String UserInput(String x) {
// Define variables
int l = x.length(),
count = 0;
char n = x.charAt(l);
boolean valid = false,
condition = false;
String c1 = "",
s1 = "";
// While loop tests the validity of the password
while(valid == false && l <= 0){
if (l < 8){
condition = false;
c1 = "A password must have at least eight characters";
continue;
}
else if (Character.isLetter(n) == false && Character.isDigit(n) == false){
condition = false;
c1 = "A password must consist of only letters and digits";
continue;
}
else
condition = true;
while (count < 2) {
if (Character.isDigit(n) == true) {
count++;
}
}
if (count < 2) {
condition = false;
c1 = "A password must contain at least two digits";
continue;
}
else {
condition = true;
}
l++;
if (condition = true)
valid = true;
else
valid = false;
}
if (valid == true)
s1 = "Valid Passord";
else
s1 = "Invalid Password";
String m = s1 + "\n\t" + c1;
System.out.println(m);
return x;
}
}