黑马程序员技术交流社区

标题: 测试题交流0---你值得拥有 [打印本页]

作者: 唕    时间: 2014-8-6 22:59
标题: 测试题交流0---你值得拥有
本帖最后由 唕 于 2014-8-7 14:46 编辑

10、编写函数,从一个字符串中按字节数截取一部分,但不能截取出半个中文(GBK码表),
//   例如:从“HM程序员”中截取2个字节是“HM”,截取4个则是“HM程”,截取3个字节也要是"HM"而不要出现半个中文。

作者: masai158    时间: 2014-8-7 00:13
  1. public class Text013
  2. {

  3.         public static void main(String[] args)
  4.         {
  5.                 System.out.println(getStr("HM程序员",1));
  6.         }

  7.         public static String getStr(String str,int index)
  8.         {
  9.                 byte[] bytes = str.getBytes();                //转成字节数组
  10.                
  11.                 if(index > 2 && index%2!=0) //根据Index 判断。大于2,而且后面还是单个数字。那肯定出现?
  12.                         index--;        //那就--
  13.                
  14.                 return new String(bytes,0,index);
  15.         }
  16. }
复制代码


楼主。我就知道这么多。麻烦明天公布答案。记得回复我 一下
作者: masai158    时间: 2014-8-7 00:24
{:3_47:}我发现有编程不能离开 System.out.println()
作者: 唕    时间: 2014-8-7 07:53
masai158 发表于 2014-8-7 00:13
楼主。我就知道这么多。麻烦明天公布答案。记得回复我 一下

我觉得的关键点:一个汉字存入byte 【2】数 组 ,里面的两个元素都小于零
作者: masai158    时间: 2014-8-7 08:04
唕 发表于 2014-8-7 07:53
我觉得的关键点:一个汉字存入byte 【2】数 组 ,里面的两个元素都小于零

{:2_36:}{:2_36:}{:2_36:}!!嗯。又懂了
作者: 明2012    时间: 2014-8-7 08:21
大家讨论,交流共同进步
作者: es2379649    时间: 2014-8-7 10:00
我的是先获取字节数组,转成字符串再转成字符数组,取比指定位+1的字节数组转成字符串再转成字符数组。如果两个字符数组一样长,那么所取位就是半个汉字,返回所取位-1的字符串。如果不一样长,直接返回所取位的字符串。
作者: 暴君    时间: 2014-10-22 17:00
感谢分享,又长知识了~
作者: 张周飞    时间: 2014-10-24 09:39
受教了 !!!LZ




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2