一种截取字母汉字混合串的方法(String.split)

     /**
	 * 按字节截取字符串
	 * @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();
	}


//test
public 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=我l
result_4=我ll
result_5=我llo
result_6=我llo
result_7=我llo小
result_8=我llo小
result_9=我llo小李
result_10=我llo小李
result_11=我llo小李飞
result_12=我llo小李飞a
result_13=我llo小李飞as
result_14=我llo小李飞asd
result_15=我llo小李飞asdf

[注]:(重新)构造字符串数组,不适于大字符串的处理。

你可能感兴趣的:(String)