关于截取字符串的面试题
网络上流传的JAVA面试题中   一般都有这么一题: 
 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。   但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。    
 估计已经很普及了……今天我在面试的时候看到了这题,仔细一看,发现完全不是想象中的那么简单……   最后没有完成。   回来以来自己想了一下午:未有结果,又找来网上的答案   发现:根本就不对!         请知道的大人给个正解,谢谢了。 
 (新手上路,还请告诉我如何给分)
------解决方案--------------------经运行验证sswhsz()的方法是正确的。此处的编码方式应该是操作系统默认的GB编码,即汉字占2个字节且第一个字节的最高位是1,如果理解为有符号数的话,就是负数;而英文占1个字节,符合ASC2码。
------解决方案--------------------又想了一下,因为索引-1处的字节有可能是前一个汉字的一般, 
 所以,好像必须要遍历才能识别出最后一个字节是否前一个汉字的一半,   
 只好又改了一下,汗... 
 String s =  "我ABC汉DEF "; 
 int len = 6;   
 byte[] bs = s.getBytes(); 
 boolean b = false;// 是否汉字的一半 
 for (int i = 0; i  < len; i++) 
 	b = !b && bs[i]  < 0;   
 String s1 = new String(bs, 0, b ? len - 1 : len); 
 System.out.println(s1);
------解决方案--------------------呵呵 就按照我的 最大子串 不管什么编码 应该都没有问题