Java中取出一个字节,如何判断这一个字节是否是一个汉字中的一部分
String a = new String("我是一串含有中文的字符串");然后对byte[] b = a.getBytes();转化为字节类型的数组,
public class Test{
public static void main(String[] args) {
String a = new String("hw,mmmm字符串");
byte[] b = a.getBytes();
for(int i = 0,m=b.length;i<m;i++){
if(b[i] >= 0 && b[i] <=127){//10进制ascill表0到127
System.out.println(b[i]+":我是字母数字或者符号");
}else{
System.out.println(b[i]+":我是中文日文或者韩文,反正键盘上不能直接看到我");
}
}
}
}
输出的结果是:
104:我是字母数字或者符号
119:我是字母数字或者符号
44:我是字母数字或者符号
109:我是字母数字或者符号
109:我是字母数字或者符号
109:我是字母数字或者符号
109:我是字母数字或者符号
-27:我是中文日文或者韩文,反正键盘上不能直接看到我
-83:我是中文日文或者韩文,反正键盘上不能直接看到我
-105:我是中文日文或者韩文,反正键盘上不能直接看到我
-25:我是中文日文或者韩文,反正键盘上不能直接看到我
-84:我是中文日文或者韩文,反正键盘上不能直接看到我
-90:我是中文日文或者韩文,反正键盘上不能直接看到我
-28:我是中文日文或者韩文,反正键盘上不能直接看到我
-72:我是中文日文或者韩文,反正键盘上不能直接看到我
-78:我是中文日文或者韩文,反正键盘上不能直接看到我
大于0的表示键盘上所有字母数字符号的十进制ascill,比如104对应的h,可以查看ascill表。
我电脑一个中文占3个字节,测试了日语和韩语和中文一样,是不是可以找到规律呢?
为了与你的问题一致,现在假定我电脑里中文占两个字节,我们把小于0的值单独放到一个数组里,如果数组索引除2,余数为1则是前半部分,余数为0则是后半部分。
将一个string类型的中文字符串如 String a = new String("判断汉字a");然后对byte[] b = a.getBytes();转化为字节类型的数组,问在b 中一个字节b[3],如何判断b[3]这个字节是不是一个汉字字符中的一个字节还是一个普通的字符,如果b[3]是汉字字符中的一个字节,如何知道他是字节中前半部分的字节还是后半部分的字节