/** * 写一个方法 String left(String str ,int n) str字符串中可能包含中文,中文是2bytes,实现的功能是 * 如:“中abc12” n=4 则该方法返回“中ab” “中abc国a” n=6 则返回“中abc”中文是一半时不返回 * @author Fee Share * */ public static String CutString(String str, int byteSize) { char[] arrayStr = str.toCharArray(); //将字符串转换为数组 int byteLength = 0; //用来统计字符串的byte长 int cutIndex = 0; //要截取的下表 if (byteSize>= arrayStr.length * 2 ) { //如果要取的byte长度大于字符串,返回字符串 return str; } for (int i = 0; i < arrayStr.length; i++) { if(arrayStr[i]>255) { byteLength+=2; //如果为汉字编码,byte+2 } else { ++byteLength; } if(byteLength>=byteSize) { if(byteLength==byteSize) { cutIndex = i+1; } else { cutIndex = i; } break; } } return str.substring(0,cutIndex); }