请用户输入密码,并检测密码是否有效
有效条件:
- 密码必须至少八位字符
- 密码仅能包含字母和数字
密码必须包含至少两个数字
小结:正则表达式检验字符串
package test;
import java.util.Scanner;
public class passwordDetection {
public static void main(String[] args) {
String password = "";
do {
password = getPassword();
}while(rule(password) == false);
}
/*获取密码*/
public static String getPassword() {
Scanner input = new Scanner(System.in);
System.out.println("请输入密码:");
String password = input.nextLine();
return password;
}
/*检验密码*/
public static boolean rule(String password) {
if(eightWord(password) == false) {
System.out.println("您输入的不是八位!");
return false;
}
else if (numberWord(password) == false) {
System.out.println("您输入的密码应仅包含数字和字母!");
return false;
}
else if (twoNumber(password) == false) {
System.out.println("密码应至少两个数字!");
return false;
}
else {
System.out.println("密码合格!");
return true;
}
}
/*检验至少八位密码*/
public static boolean eightWord (String password) {
int len = password.length();
if (len >= 8)
return true;
else
return false;
}
/*检验密码仅能包含字母和数字*/
public static boolean numberWord (String password) {
boolean flag = password.matches("[a-zA-Z0-9]{8,}");
return flag;
}
/*检验密码包含至少两个数字*/
public static boolean twoNumber (String password) {
char word;
int i = 0,flag = 0;
for(i = 0; i < 8; i++) {
word = password.charAt(i);
if(word < '9' && word > '0')
flag++;
if(flag >= 2)
return true;
}
return false;
}
}