public static void main(String[] args) {
String inputText = "你好啊abc";//输入字符
int count = 0;
int chCharCount = 0;
//把字符串转换成字符数组
char[] charArray = inputText.toCharArray(); for (int i = 0; i < charArray.length; i++) {
char cn = charArray[i];
//按照平台缺省的字符编码方式把该 String 转换成字节,并把结果存到一新的字节数组中。
byte[] bytes = (String.valueOf(cn)).getBytes(); if (bytes.length == 1) {
//英文字符(因为一个英文字符就是一个字节,获得的字节数组的长度就是1)
int ascii = bytes[0];
char sChar = (char)ascii;
}
if (bytes.length == 2) { //双字节字符
count++;
int hightByte = 256 + bytes[0];
int lowByte = 256 + bytes[1];
int ascii = (256 * hightByte + lowByte) - 256 * 256;
if (ascii >= -20319 && ascii < -10247) { //中文字符
chCharCount++;
}
}
}
System.out.println("共有 " + count + " 个双字节字符!");
System.out.println("共有 " + chCharCount + " 汉字!");
}
String inputText = "你好啊abc";//输入字符
int count = 0;
int chCharCount = 0;
//把字符串转换成字符数组
char[] charArray = inputText.toCharArray(); for (int i = 0; i < charArray.length; i++) {
char cn = charArray[i];
//按照平台缺省的字符编码方式把该 String 转换成字节,并把结果存到一新的字节数组中。
byte[] bytes = (String.valueOf(cn)).getBytes(); if (bytes.length == 1) {
//英文字符(因为一个英文字符就是一个字节,获得的字节数组的长度就是1)
int ascii = bytes[0];
char sChar = (char)ascii;
}
if (bytes.length == 2) { //双字节字符
count++;
int hightByte = 256 + bytes[0];
int lowByte = 256 + bytes[1];
int ascii = (256 * hightByte + lowByte) - 256 * 256;
if (ascii >= -20319 && ascii < -10247) { //中文字符
chCharCount++;
}
}
}
System.out.println("共有 " + count + " 个双字节字符!");
System.out.println("共有 " + chCharCount + " 汉字!");
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货