Scanner s=new Scanner(System.in);
String str=s.next("输入一组字符串:");
int nub=0;//记录数字的个数
int letter=0;//记录字母的个数
int chinese=0;//记录汉字的个数
String regEx = "[ _`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]|\n|\r|\t";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
int other=0;//记录特殊字符个数
for(int i=0;i<str.length();i++){
if(str.charAt(i)>='0' && str.charAt(i)<='9'){
nub++;
}else if((str.charAt(i)>='a' && str.charAt(i)<='z') || (str.charAt(i)>='A' && str.charAt(i)<='Z')){
letter++;
}else if(str.charAt(i)>=19968 && str.charAt(i)<=40623){
chinese++;
}else if(m.find()){
other++;
}
}
System.out.println("数字的个数为:"+nub);
System.out.println("字母的个数为:"+letter);
System.out.println("汉字的个数为:"+chinese);
System.out.println("特殊字符的个数为:"+other);