A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 唕 中级黑马   /  2014-8-6 22:59  /  1824 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 唕 于 2014-8-7 14:46 编辑

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

8 个回复

倒序浏览
  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. }
复制代码


楼主。我就知道这么多。麻烦明天公布答案。记得回复我 一下
回复 使用道具 举报
{:3_47:}我发现有编程不能离开 System.out.println()
回复 使用道具 举报
masai158 发表于 2014-8-7 00:13
楼主。我就知道这么多。麻烦明天公布答案。记得回复我 一下

我觉得的关键点:一个汉字存入byte 【2】数 组 ,里面的两个元素都小于零
回复 使用道具 举报
唕 发表于 2014-8-7 07:53
我觉得的关键点:一个汉字存入byte 【2】数 组 ,里面的两个元素都小于零

{:2_36:}{:2_36:}{:2_36:}!!嗯。又懂了
回复 使用道具 举报
大家讨论,交流共同进步
回复 使用道具 举报
我的是先获取字节数组,转成字符串再转成字符数组,取比指定位+1的字节数组转成字符串再转成字符数组。如果两个字符数组一样长,那么所取位就是半个汉字,返回所取位-1的字符串。如果不一样长,直接返回所取位的字符串。
回复 使用道具 举报
暴君 中级黑马 2014-10-22 17:00:34
8#
感谢分享,又长知识了~
回复 使用道具 举报
受教了 !!!LZ
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马