/*
- 小美的用户名:
- 小美是美团的前端工程师,为了防止系统被恶意攻击,小美必须要在用户输入用户名之前做一个合法性检查,一个合法的用户名必须满足以下几个要求:
- 1、用户名的首字符必须是大写或者小写字母。
- 2、用户名只能包含大小写字母,数字。
- 3、用户名需要包含至少一个字母和数字。
- 如果用户名合法,请输出“Accept",反之输出”Wrong"。
- 输入描述:
- 输入第一行包含一个正整数T,表示需要检查的用户名数量。(1<=T<=100),接下来有T行,每行一个不超过20的字符串s,表示输入的用户名。
- 输出描述:
- 对于每一个输入的用户名s,请输出一行,即按题目要求输出一个字符串。
- 样例输入:
- 4
- Ooook
- Hhhhh666
- ABCD
- 6666
- 样例输出:
- Wrong
- Accept
- Wrong
- Wrong
- */
具体代码实现如下:
import java.util.Scanner;
public class meituan01 {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();// 获取第一个键盘输入的整形数值
String[] str = new String[n];// 用于存储n个字符串
// 获取字符串
for(int i = 0; i < n; i++){
str[i] = sc.next();
}
// 以上部分,处理输入完毕
for(int i = 0; i < n; i++){
if(helper(str[i])){
System.out.println("Accept");
}else{
System.out.println("Wrong");
}
}
}
public static boolean helper(String str){
int zimuCount = 0;// 用于记录字母个数
int numberCount = 0;// 用于记录数字个数
// 判断首位字符是否为大小写字母
if(!Character.isUpperCase(str.charAt(0)) && !Character.isLowerCase(str.charAt(0))){
return false;
}
zimuCount++;// 如果首位字符为大小写字母,则字母个数加1
// 遍历剩下的字符串,判断是否合格并记录字母和数字的出现次数
for(int i = 1; i < str.length(); i++){
if(!Character.isDigit(str.charAt(i)) && !Character.isUpperCase(str.charAt(i)) && !Character.isLowerCase(str.charAt(i))){
return false;
}
if(Character.isDigit(str.charAt(i))){
numberCount++;
}else if(Character.isUpperCase(str.charAt(i)) || Character.isLowerCase(str.charAt(i))){
zimuCount++;
}
}
if(numberCount == 0){
return false;
}else{
return true;
}
}
}
人生若只如初见,何事秋风悲画扇。
等闲变却故人心,却道故人心易变。
-----------纳兰性德
小白寄语:学如逆水行舟,不进则退。