首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

JAVA截取Byte数组中某段数据(数据包括数字、字母、汉字、符号)解决方案

2012-03-09 
JAVA截取Byte数组中某段数据(数据包括数字、字母、汉字、符号)字符串如下:Java codeString msg 4450060操

JAVA截取Byte数组中某段数据(数据包括数字、字母、汉字、符号)

字符串如下:

Java code
String msg = "445       0060   操作成功!                                                   400161";byte[] bytes = s.getBytes();


如从bytes的0位开始截取,往后截10位因为:
445 (包含空格)

如从bytes的17位开始截取,往后截60位因为:
操作成功! (包含空格,一个汉字占两个字节)

如从bytes的17位开始截取,往后截61位因为:
操作成功! 4(包含空格,一个汉字占两个字节)








[解决办法]
一个60位长的byte[]数组,如果其中包括有4个汉字,用它转换而成的String对象的长度只有56.
这是因为String.length()方法是计算char的个数,无论汉字,字母还是英文都算1个char

这是char和byte的区别造成的
[解决办法]
UTF8一个汉字占3个字节
你是用什么字符集来编码

热点排行