문제 설명 :암호 코드 확인
일부 웹 사이트는 암호에 대해 특정 규칙을 적용합니다. 문자열이 유효한 암호인지 여부를 확인하는 메서드를 작성합니다. 암호 규칙이 다음과 같다고 가정하십시오.
- 암호는 8 자 이상이어야합니다.
- 암호는 문자와 숫자로만 구성됩니다.
- 암호는 두 자리 이상이어야합니다.
사용자에게 암호를 입력하라는 메시지를 표시하고 규칙을 준수하면 "유효한 암호"를 표시하고, 그렇지 않으면 "잘못된 암호"를 표시합니다. 내가 암호의 길이 그것은 단지 검사 프로그램을 실행하면
import java.util.*;
import java.lang.String;
import java.lang.Character;
/**
* @author CD
* 12/2/2012
* This class will check your password to make sure it fits the minimum set requirements.
*/
public class CheckingPassword {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Please enter a Password: ");
String password = input.next();
if (isValid(password)) {
System.out.println("Valid Password");
} else {
System.out.println("Invalid Password");
}
}
public static boolean isValid(String password) {
//return true if and only if password:
//1. have at least eight characters.
//2. consists of only letters and digits.
//3. must contain at least two digits.
if (password.length() < 8) {
return false;
} else {
char c;
int count = 1;
for (int i = 0; i < password.length() - 1; i++) {
c = password.charAt(i);
if (!Character.isLetterOrDigit(c)) {
return false;
} else if (Character.isDigit(c)) {
count++;
if (count < 2) {
return false;
}
}
}
}
return true;
}
}
, 나는 확실히 그것을 모두 문자와 숫자 확인되어 있는지 확인하는 방법을 알아낼 수 없습니다 :
이
내가 지금까지 무엇을 가지고 , 그리고 암호에 적어도 두 자 리가 있어야합니다.
이의 첫 번째 보정 password.length은() <= 8, 그것은 "말한대로하면 그것이 있어야한다는 것입니다 적어도 8 ", 즉 8이 유효 함을 의미합니다. – ThePerson
@NutterzUK : 8이 유효하면 길이가 8보다 작 으면 메서드는 false를 반환해야합니다. OP가 올바르게 처리했습니다. –
정규식을 사용할 수 있습니까? – Vulcan