本帖最后由 Jiewin 于 2013-7-23 23:21 编辑
有道题,想了几个小时,才做好!!!!还有没有更好的办法呢?
编写一个截取字符串的函数,输入为一个字符串和字节数, 输出为按字节截取的字符串,但要保证汉字不被截取半个,
如"我ABC",4,应该截取"我AB",输入"我ABC汉DEF",6, 应该输出"我ABC",而不是"我ABC+汉的半个"。
- public class getStrDemo {
- public static void main(String[] args){
- String str = "我ABC汉DEF";
- System.out.println(getStr(str, 6));
- }
- public static String getStr(String str, int num) {
- byte[] index = str.getBytes();
-
- //len 是记录汉字的字节出现次数
- //endIndex 就是截取字符串时的末尾索引。
- int cnlen = 0;
- int endIndex = 0;
- for (int x=0; x<num; x++){
- if (index[x]<0)
- cnlen++;
- if(cnlen %2==0)
- endIndex++;
- }
- return str.substring(0, endIndex);
- }
- }
复制代码 |