Java中取出一个字节,如何判断这一个字节是否是一个汉字中的一部分

Java中取出一个字节,如何判断这一个字节是否是一个汉字中的一部分,如一个汉字分为两个字节,取出一个字节,可以判断出这是汉字的第一个字节... Java中取出一个字节,如何判断这一个字节是否是一个汉字中的一部分,如一个汉字分为两个字节,取出一个字节,可以判断出这是汉字的第一个字节 展开
 我来答
地狱得没
2015-05-22 · TA获得超过220个赞
知道答主
回答量:120
采纳率:100%
帮助的人:63万
展开全部

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则是后半部分。

颜值爆表你敢信
2015-05-21
知道答主
回答量:11
采纳率:0%
帮助的人:5.2万
展开全部
应该是取不出来的!!即使取出来了,那就不是中文字节了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sz51625
2015-05-21 · TA获得超过127个赞
知道小有建树答主
回答量:307
采纳率:100%
帮助的人:131万
展开全部
你要怎么取出来?
追问
将一个string类型的中文字符串如 String a = new String("判断汉字a");然后对byte[] b = a.getBytes();转化为字节类型的数组,问在b 中一个字节b[3],如何判断b[3]这个字节是不是一个汉字字符中的一个字节还是一个普通的字符,如果b[3]是汉字字符中的一个字节,如何知道他是字节中前半部分的字节还是后半部分的字节
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
孤独的ADOBE
2018-06-27
知道答主
回答量:1
采纳率:0%
帮助的人:859
展开全部
最近我也好奇这个问题,我想应该是我这个想法,但不知道在哪实现的,拿UTF-8说,比如现在你的文本有2个字符“A方”,现在IO流里是二进制的“01101010101001.......”(假设是这样),但是utf-8有编码规范的,也就是说“A方”这个转成二进制的代码固定的,然后开始读字符,第一次读了8个byte,可以解析成A,读第二个字节(“方”占了3个字节,现在读的这个字节是“方”的一部分,它怎么知道这是个汉字而不是别的呢?)前面我说了,utf-8编码有固定格式,比如说一个汉字的3个字节的编码,开头一定是“0111”,表示这个字符是3个字节的字符,你可以去查查utf-8的编码表,首先它读到了“0111XXXXX”,判断开头,知道这不是一个字母,而是个3字节的字符,于是不解析,接着读2字节,读完后(假设是“0111XXXXX XXXXXXXX XXXXXXXX”)开始解析,根据编码表知道这个是个“方”字。但java具体在哪做的这个我确实不知道。我感觉这不是java做的东西,应该交给底层的c去实现。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式