将字符串转成字符数组
首字母判断
思路:应该如何获取首字母
arr[0]为数组第一个元素即是首字母
数字判断true为数字false为非数字
"0123456789".contains(arr[0]+"");
字母判断其中一个成立即为字母
(arr[0]>='z'&&arr[0]<='a')||(arr[0]>='Z'&&arr[0]<='A')
其它索引位置的判断只需遍历数组即可
注意:写这种代码时应该一个判断写完验证一个判断,所有判读都写完后,将他们按逻辑连接起来即可
/*编写一个校验用户名的程序,检测键盘录入的用户名是否合法
要求:用户名必须是6-10位之间的字母并且不能以数字开头*/
public class Demo20 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入账号");
String str = sc.nextLine();
char[] arr = str.toCharArray();
boolean b = "0123456789".contains(arr[0] + "");
if (b) {
System.out.println("不能以数字开头");
} else {
// 判断长度
if (!(arr.length >= 6 && arr.length <= 10)) {
System.out.println("输入长度有误");
} else {
// 判断是不是字母
for (char c : arr) {
if (!((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'))) {
System.out.println("请输入字母");
return;
}
}
System.out.println("登录成功");
}
}
}
}