这if个里面你写的的判断多一点,每个用||连接,然后汉字和字母可以考虑用转化的数字编码来完成。给你一个参考,你要是非要当伸手党我就没话说了~
package day_4;
import java.util.Scanner;
public class Passname {
public static void main(String[] args) {
System.out.println("请输入用户名");
Scanner in=new Scanner(System.in);
String name=in.next();
if(name.length()<16&&name.length()>5&&!(Character.isDigit(name.charAt(0)))){
for(int i=0;i
System.out.println("存在非数字非字母非'_'的字符");
break;
}
else if(i==name.length()-1){
System.out.println("用户名合法");
}
}
}
else{
System.out.println("长度不符或者首字符为数字");
}
}
}
不知道楼主是不是要同时包含?
String line = "2014ABN我";
Pattern pattern =Pattern.compile("[a-zA-Z]|\\d|[一-龥]");
Matcher matcher = pattern.matcher(line);
while (matcher.find()) {
// 如匹配成功即走到这里
System.out.println(matcher.group());
}
直接从网上搜正则表达式就可以了