public static void main(String[] args) {
String str = "12年3Aa33张456bcdef科技有BC限公司";
int hanzi = 0;
int shuzi = 0;
int zimu = 0;
byte[] b = str.getBytes();
for (int i = 0; i < b.length; i++) {
if (Character.isDigit(b[i])) {// 判段是否为数字
shuzi++;
}
if (Character.isLowerCase(b[i]) || Character.isUpperCase(b[i])) {// 判段是否为字母
zimu++;
}
if (b[i] < 0) {// java中文字符是负的BYTE值
hanzi++;
i++;// 中文字符是双字节
}
}
System.out.println(shuzi);
System.out.println(zimu);
System.out.println(hanzi);
}