/** * 按字节截取字符串 * @param test 截取的目标字符串 * @param num 字节长度 * @return String 截取后的字符串 */ public static String truncateString(String test,int num){ if(num<1) return ""; if(num>=test.getBytes().length) return test; String[] s=test.split(""); //转换之后s[0]="",不知道是为什么; String[] s1=new String[s.length-1];//重新构造字符数组 for(int i=1;i<s.length;i++) s1[i-1]=s[i]; for(int i=0;i<num;i++) if(s1[i].getBytes().length>1){ num--; } StringBuilder result=new StringBuilder(""); for(int i=0;i<num;i++) result.append(s1[i]); return result.toString(); }//testpublic static void main(String[] args){ String test="我llo小李飞asdf"; for(int num=1;num<=test.getBytes().length;num++) { System.out.println("result_"+num+"="+truncateString(test,num)); } }控制台输出:result_1=result_2=我result_3=我lresult_4=我llresult_5=我lloresult_6=我lloresult_7=我llo小result_8=我llo小result_9=我llo小李result_10=我llo小李result_11=我llo小李飞result_12=我llo小李飞aresult_13=我llo小李飞asresult_14=我llo小李飞asdresult_15=我llo小李飞asdf[注]:(重新)构造字符串数组,不适于大字符串的处理。