import java.util.Scanner;
public class Test1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一行字符串:");
String s = sc.nextLine();
count(s);
}
public static void count(String s) {
int n1=0;//Chinese
int n2 =0;//English
int n3 =0;//number
int n4 =0;//kongge
int n5 =0;//other
for(int x=0;x<s.length();x++) {
char ch= s.charAt(x);
if((ch >='a' &&ch<='z')||(ch>='A'&& ch<='Z')) {
n2++;
}else if(ch>='0' && ch<='9') {
n3++;
}else if(isChinese(ch)) {
n1++;
}else if(ch==' ') {
n4++;
}else {
n5++;
}
}
System.out.println("汉字个数为:"+n1);
System.out.println("字母个数为:"+n2);
System.out.println("数字个数为:"+n3);
System.out.println("空格个数为:"+n4);
System.out.println("其他字符个数为:"+n5);
}
//中文字符判断
private static boolean isChinese(char ch) {
Character.UnicodeBlock ub = Character.UnicodeBlock.of(ch);
if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS || ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS
|| ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B
|| ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION || ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS
|| ub == Character.UnicodeBlock.GENERAL_PUNCTUATION) {
// System.out.println(ch + " 是中文");
return true;
}
return false;
}
}