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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

题目10:编写函数,从一个字符串中按字节数截取一部分,但不能截取出半个中文(GBK码表)

例如:从“HM程序员”中截取2个字节是“HM”,截取4个则是“HM程”,截取3个字节也要是"HM"而不要出现半个中文

8 个回复

倒序浏览
竟然把面试题目放这里来问.认真看完毕老师的视频,这道题目就不是很难了
回复 使用道具 举报
这题关键是编码的问题,用题目给的GBK码去做就行了。
回复 使用道具 举报
用正则。。。
回复 使用道具 举报
  BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream("D:\\test.txt"),"GBK"));
  char c[]=new char[1024];
  br.read(c, 0, 3);
  System.out.println(new String(c).trim());
回复 使用道具 举报
表示头晕,哈哈 。
还要看四天才到IO流
回复 使用道具 举报
如果是按字节截取的话,最好是判断字节首位是否为1,因为英文字母首位都为零,而GBK码表中的中文首位都为一,当一个字节首位为一时就表示这个一个中文汉字,
回复 使用道具 举报
yanzhendong 发表于 2014-4-12 19:56
如果是按字节截取的话,最好是判断字节首位是否为1,因为英文字母首位都为零,而GBK码表中的中文首位都为一 ...

好的。谢谢。我慢慢研究一下。
回复 使用道具 举报
榨菜 高级黑马 2014-4-12 22:44:20
9#
我参考了这篇文章后 ,也写下代码。代码就不给了 。

你可以参照这篇文章http://zhidao.baidu.com/link?url=0fpjdXzH91h0lKQu9pXVjhHfmfjOQfx6MLAiRxjPQovHAI-Dos909x6J651fpx4f4VCEPvXwtct9OnI_6TATOK
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马