请求一个拼接分割后字符串算法的思路!!
我在完成一个动态构造字符串的功能时,思路好混乱啊!具体的功能需求是这样的: 
 从外界传进一个以 '/ '分割的字符串,我需要将其转换成指定长度的字符串数组。如果当前字符串长度越界则将其放入下一个字符串中。 
 举例如下: 
 String   test   =    "Eugene/MichaelJackson/Eminem/Limpbizkit/Linkinpark-LPU/Five "; 
 我设每一个完成的字符串元素长度为22。则最后处理完的字符串数组类似这样: 
 results[0]= "Eugene ";                                                   //长度超过22不能拼接 
 results[1]= "/MichaelJackson/Eminem ";   //长度等于22可以拼接 
 results[2]= "/Limpbizkit ";    
 results[3]= "/Linkinpark-LPU/Five "; 
 希望哪位高人能够指点迷津,给一点思路!谢谢! 
 我现在的问题就是集中在如何判断长度和拼接。有点混乱!
------解决方案--------------------String test =  "Eugene/MichaelJackson/Eminem/Limpbizkit/Linkinpark-LPU/Five "; 
 String[] result=test.split( "/ "); 
 if(test.startsWith( "/ ")) 
          result[0]= "/ "+result[0]; 
 for(int i=1;i <result.length;i++) 
 	result[i]= "/ "+result[i]; 
 ArrayList <String> res=new ArrayList <String> (); 
 StringBuffer sb=new StringBuffer();//缓冲 
 for(int i=0;i <result.length;i++) 
 { 
 	if(result[i].length()+sb.length()> =21)//如果太加一起长度太长, 
                                     //则将缓冲内容添加到结果中,并清空缓冲 
 	{ 
 		res.add(sb.toString()); 
 		sb.setLength(0);			 
 	} 
          //将当前内容加入到缓冲中 
 	sb.append(result[i]); 
 } 
 //如果缓冲不为空,则添加最后内容到结果中 
 if(sb.length()!=0) 
 res.add(sb.toString()); 
 //显示测试结果 
 for(int i=0;i <res.size();i++) 
 	System.out.println(res.get(i));