写一个方法 String left(String str ,int n) str字符串中可能包含中文,中文是2bytes,实现的功能是
如:“中abc12” n=4 则该方法返回“中ab” “中abc国a” n=6 则返回“中abc”中文是一半时不返回
/** * @param args */ public static void main(String[] args) { System.out.println(subStringByBytes("你此AAA哈哈",6)); } /*** * 按byte截取字符串 * @param str * @param end 截取几个byte * @return string */ public static String subStringByBytes(String str, int end) { if(str.length()*2 <end){ return str; } char[] chArr = str.toCharArray(); int lenByte = 0; for (int i = 0; i < chArr.length; i++) { if (chArr[i] > 255) { lenByte += 2; } else { ++lenByte; } if(lenByte>=end){ if(lenByte==end){ return str.substring(0,i); } return str.substring(0,i-1); } } return str; }