Java开发网 Java开发网
注册 | 登录 | 帮助 | 搜索 | 排行榜 | 发帖统计  

您没有登录

» Java开发网 » Java SE 综合讨论区 » 编程/算法/API  

按打印兼容模式打印这个话题 打印话题    把这个话题寄给朋友 寄给朋友    该主题的所有更新都将Email到你的邮箱 订阅主题
flat modethreaded modego to previous topicgo to next topicgo to back
作者 字节数组转化为String字符串随机截取的方法?
GlennLi





发贴: 20
积分: 2
于 2005-09-07 14:58 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
比如我有一个字符串 str="123abc中文显示",我现在获取str的字节数组
byte[] b=str.getBytes(),然后我要实现一个方法:
String Convert(byte[] b,int offset,int length ) {
//实现将byte[]类型转换为String类型
}

三个参数中,第一个是要转化的字节数组,第二个是开始的位移量,第三个是要转化的字节数。这个方法的功能就是要把字节数组b还原为str,如果offset=0,length=b.length,返回值会正常显示。但是,如果我随机设置offset和length的长度,问题就出现了:
比如 System.out.println(Convert(b,0,7)); 结果是 123abc?
出现问号的原因是"中"字占了两个字节,而length=7刚好读到"中"的第一个字节,因此无法正常显示。
如果使用substring方法,那么所有的字符都是按双字节输出,那么
System.out.println(Convert(b,0,8)); 结果是123abc中文
读取字节的长度length=8还没有度到"文"的字节的时候,"文"就已经读出来了,这样不是想要的结果,因为参数length是字节的长度。
请教怎么样才能在我随机设置offset和length的情况下,单字节和双字节混合都能正常显示,如果恰好读到一个双字节的第一个字节的时候,那么就不要显示这个双字节了,也就是不要出现问号,请问该怎么实现?


GlennLi edited on 2005-09-07 15:01


自己设计的一个java小管理程序

话题树型展开
人气 标题 作者 字数 发贴时间
19158 字节数组转化为String字符串随机截取的方法? GlennLi 717 2005-09-07 14:58
16802 Re:字节数组转化为String字符串随机截取的方法? GlennLi 24 2005-09-08 09:38
16664 Re:字节数组转化为String字符串随机截取的方法? why 354 2005-09-08 10:04
16788 Re:字节数组转化为String字符串随机截取的方法? GlennLi 66 2005-09-08 11:10
16740 Re:字节数组转化为String字符串随机截取的方法? zcjl 33 2005-09-08 11:41
16618 Re:字节数组转化为String字符串随机截取的方法? GlennLi 41 2005-09-08 18:29
16997 Re:字节数组转化为String字符串随机截取的方法? zcjl 1514 2005-09-08 22:11
17311 Re:字节数组转化为String字符串随机截取的方法? GlennLi 317 2005-09-09 09:58

flat modethreaded modego to previous topicgo to next topicgo to back
  已读帖子
  新的帖子
  被删除的帖子
Jump to the top of page

   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923