Posted on 2005-06-17 11:15
morcble的blog 閱讀(773)
評論(0) 編輯 收藏 所屬分類:
Java
String的靜態(tài)方法split(String a)有點問題,列如
String a0 = "|we|r|";
String[] b0 = a0.split("|");
b0不會得到預(yù)期的數(shù)組,而是{"|","w","e","r","|"}.
于是寫了一個類代替這個方法
如下
public class Strings {
public static Collection seperateBy(String target,String seperate) {
if (target==null||seperate==null||target.equals("")){
return new ArrayList();
}
Collection collection = new ArrayList();
int num = target.indexOf(seperate);
if (num!=-1){
if(num==0){
target = target.substring(1,target.length());
Collection here = seperateBy(target,seperate);
for(Iterator iterator1 = here.iterator();iterator1.hasNext();){
collection.add(iterator1.next());
}
return collection;
}
else if(num == target.length()-1){
collection.add(target.substring(0,target.length()-1));
return collection;
}
else
{
collection.add(target.substring(0,num));
target = target.substring(num+1,target.length());
Collection here = seperateBy(target,seperate);
for(Iterator iterator1 = here.iterator();iterator1.hasNext();){
collection.add(iterator1.next());
}
return collection;
}
}
else collection.add(target);
return collection;
}
/*測試
public static void main(String[] args) {
Collection a1 = Strings.seperateBy("|aaa|aa","|");
Collection a2 =Strings.seperateBy("|aaa|aa|","|");
Collection a3 =Strings.seperateBy("aaa|aa","|");
Collection a4 =Strings.seperateBy("aaaaa","|");
Collection a5 =Strings.seperateBy("|aaa|aa","|");
Collection a6 =Strings.seperateBy("||||","|");
Collection a7 =Strings.seperateBy("","|");
}*/
}
正則表達式問題
正確寫法String a0 = "|we|r|";
String[] b0 = a0.split("\\|");