posts - 3, comments - 15, trackbacks - 0, articles - 26
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          String.split(String a)的錯誤 == 正則表達式問題

          Posted on 2005-06-17 11:15 morcble的blog 閱讀(776) 評論(0)  編輯  收藏 所屬分類: Java

          String的靜態方法split(String a)有點問題,列如
          String a0 = "|we|r|";
          String[] b0 = a0.split("|");
          b0不會得到預期的數組,而是{"|","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("\\|");

          主站蜘蛛池模板: 东平县| 台南县| 凤台县| 延吉市| 六枝特区| 吴旗县| 永嘉县| 双柏县| 霸州市| 奉化市| 惠东县| 大理市| 夏河县| 任丘市| 孟津县| 渝北区| 楚雄市| 太白县| 新乐市| 尚义县| 开原市| 太仓市| 东海县| 文安县| 新源县| 连平县| 无棣县| 河北区| 溆浦县| 陵川县| 丹棱县| 沈阳市| 永福县| 廊坊市| 漯河市| 日喀则市| 南陵县| 志丹县| 三河市| 荣成市| 洛阳市|