输入格式:
输入第一行给出一个正整数 N(≤ 100),随后 N 行,每行给出一个用户设置的密码,为不超过 80 个字符的非空字符串,以回车结束。
注意: 题目保证不存在只有小数点的输入。
输出格式:
对每个用户的密码,在一行中输出系统反馈信息,分以下5种:
- 如果密码合法,输出
Your password is wan mei.
; - 如果密码太短,不论合法与否,都输出
Your password is tai duan le.
; - 如果密码长度合法,但存在不合法字符,则输出
Your password is tai luan le.
; - 如果密码长度合法,但只有字母没有数字,则输出
Your password needs shu zi.
; - 如果密码长度合法,但只有数字没有字母,则输出
Your password needs zi mu.
。
输入样例:
5
123s
zheshi.wodepw
1234.5678
WanMei23333
pass*word.6
输出样例:
Your password is tai duan le.
Your password needs shu zi.
Your password needs zi mu.
Your password is wan mei.
Your password is tai luan le.
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
int n = input.nextInt();
input.nextLine();
for(int i = 0;i<n;i++){
boolean neednum = true, needletter = true, luan = false;
String password = input.nextLine();//接收输入的密码
if(password.length()<6){
System.out.println("Your password is tai duan le.");
continue;
}else{//长度够了,开始分析下面的密码内容
for(int j = 0;j<password.length();j++){
if (!Character.isLetterOrDigit(password.charAt(j)) && password.charAt(j) != '.') {//有字母、数字、.
luan = true;
// break;//重循环体内部跳出,如果省略这个,就会出现InputMismatchException输入的类型错误
} else if (Character.isDigit(password.charAt(j)) ) {//判断是否含数字
neednum = false;
} else if (Character.isLetter(password.charAt(j)) ) {//判断是否含字母
needletter = false;
}
}
if (luan) {
System.out.println("Your password is tai luan le.");//密码长度合法,但存在不合法字符,
continue;//跳出本次循环
} else if (neednum) {
System.out.println("Your password needs shu zi.");//密码长度合法,但只有字母没有数字,
continue;
} else if (needletter) {
System.out.println("Your password needs zi mu.");//密码长度合法,只有数字没有字母
continue;
}
System.out.println("Your password is wan mei.");//如果没有continue,这就话就被打印出来了
}
}
input.close();
}
}
//Character.isLetterOrDigit(password.charAt(j)判断是不是字母或数字,如果是则返回false
//charAt() 方法用于返回指定索引处的字符,可以检测密码中是否含有“.”
//Character.isDigit()方法用于判断指定字符是否为数字,如果字符为数字,则返回 true,否则返回 false
//Character.isLetter()用于判断指定字符是否为字母,如果字符为字母,则返回 true;否则返回 false