首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

字符串处理算法,该如何处理

2012-01-05 
字符串处理算法原始字符串:Stringsrc 1,2,3,4,5,6,7,8 场景1:String自有的方法publicString[]split(Str

字符串处理算法
原始字符串:String   src= "1,2,3,4,5,6,7,8 "
场景1:String自有的方法public   String   []   split(String   regex)
应用:String   []   target=src.split( ", ")
结果:target=[ "1 ", "2 ", "3 ", "4 ", "5 ", "6 ", "7 ", "8 "]
场景二:要求扩展String自有的split(String   regex)
定义函数   public   String   []   splitString(String   src,String   regx,int   num)
应用:String   []   target   =   splitString(src, ", ",3);
结果:target   =[ "1,2,3 ", "4,5,6 ", "7,8 "]  

我的思路是:先用String   自有的split方法分割,然后再重组成一个字符串数组,返回,但是感觉效率很低.

请教大家有什么好的算法;




[解决办法]
呵呵 是我脑子没转过来,修正如下:

public static String[] splitString(String src,String regex,int num) {
List <String> l = new ArrayList <String> ();
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(src);
int beg = 0;
int count = 0;
while(m.find()) {
if(++count == num) {
l.add(src.substring(beg, m.start()));
beg = m.end();
count = 0 ;
}
}
if(beg <src.length())
l.add(src.substring(beg));

return l.toArray(new String[0]);
}

热点排行