编程问题,我要正确答案!!!! 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。 我在网上搜了一些,都是输出的都是字符的个数,而不是根据字节来输出的!!!哪位牛人能给个正确的答案,谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 此回复为自动发出,仅用于显示而已,并无任何其他特殊作用楼主【jolianasd】截止到2008-07-11 13:41:20的历史汇总数据(不包括此帖):发帖的总数量:23 发帖的总分数:300 每贴平均分数:13 回帖的总数量:17 得分贴总数量:1 回帖的得分率:5% 结贴的总数量:16 结贴的总分数:200 无满意结贴数:1 无满意结贴分:0 未结的帖子数:7 未结的总分数:100 结贴的百分比:69.57 % 结分的百分比:66.67 % 无满意结贴率:6.25 % 无满意结分率:0.00 % 楼主加油 是在java里弄吧?你的理解有问题哦,JAVA里面任何一个字符都是2 个字节。你说的 如“我ABC”4,应该截为“我AB”,是错误的吧。截取4个字节,应该是"我A"就是4个字节了。呵呵,不信你可以使用"我A".getBytes().length()打印一下结果。 要看编码了.如果是GBK的话,两个字节表示一个汉字.要是UTF-8的话,大部分汉字都是3个字节表示的,不好定位.扩展ASCII编码,汉字好像也有3个字节的.如果是GBK的话,可以编一个简单的小程序试一下.原理如下:一个字节8比特,字母和数字的编码,第一个比特都是0,这于ASCII编码是相同的.如果是汉字,则表示汉字的两个字节,有个共同特点,就是这两个字节,他们的第一个比特都是0.这样的话,楼主在截取的时候,判断最后一个字节,如果这个字节b,它满足b&0x80>0那么就去掉这个字节.这样就可以了. 关于HashMap多线程下,不同键覆盖的问题 新手请教问题! 用鼠标滚轮实现image的缩放问题 微软中国研究院最新面试题 最后40分:问一个关于线程理解方面的问题,请进!!! 一个简单问题,好像很少人明白,特地请教各位高手! 如何在一个弧形里填充渐变色? jdbc ? 的烦恼 我用java写了个屏幕保护程序,有些问题请教! 谁知道哪里有 http://www.gm365.com/Login?id=xiaxin&pass=123456 这种Java游戏的源码下载? 几道面试题求解~~~~~哭啊 简单的菜鸟级
楼主【jolianasd】截止到2008-07-11 13:41:20的历史汇总数据(不包括此帖):
发帖的总数量:23 发帖的总分数:300 每贴平均分数:13
回帖的总数量:17 得分贴总数量:1 回帖的得分率:5%
结贴的总数量:16 结贴的总分数:200
无满意结贴数:1 无满意结贴分:0
未结的帖子数:7 未结的总分数:100
结贴的百分比:69.57 % 结分的百分比:66.67 %
无满意结贴率:6.25 % 无满意结分率:0.00 %
楼主加油
原理如下:
一个字节8比特,字母和数字的编码,第一个比特都是0,这于ASCII编码是相同的.
如果是汉字,则表示汉字的两个字节,有个共同特点,就是这两个字节,他们的第一个比特都是0.
这样的话,楼主在截取的时候,判断最后一个字节,如果这个字节b,它满足b&0x80>0那么就去掉这个字节.
这样就可以了.