莊周夢蝶

          生活、程序、未來
             :: 首頁 ::  ::  :: 聚合  :: 管理

          Java Tips:使用Pattern.split替代String.split

          Posted on 2009-05-21 22:49 dennis 閱讀(3212) 評論(2)  編輯  收藏 所屬分類: java
              String.split方法很常用,用于切割字符串,split傳入的參數(shù)是正則表達(dá)式,它的內(nèi)部是每次都comiple正則表達(dá)式,再調(diào)用Pattern.split方法:
          public String[] split(String regex, int limit) {
              
          return Pattern.compile(regex).split(this, limit);
              }

            
          public String[] split(String regex) {
                  
          return split(regex, 0);
              }

              因此,如果你調(diào)用String.split非常頻繁的話,每次都重新編譯正則表達(dá)式的代價很高,性能會受到很大影響,此時最好自己預(yù)編譯Pattern,再調(diào)用Pattern.split方法為妙。
          String []items=line.split(" ");

          //替代為

          static Pattern pattern=Pattern.compile(" ");



          String []items
          =pattern.split(line,0);


          PS.今天支付寶的蔡學(xué)鏞大師到公司演講,做的是《關(guān)于我的IT學(xué)習(xí)生活》的主題講座,介紹了他的經(jīng)歷和經(jīng)驗,留下深刻印象的是他看起來很年輕,和照片相差比較大,并且上過3所大學(xué),呆過兩家同一個人開的公司并都倒閉了,非常有趣的經(jīng)歷。








          評論

          # re: Java Tips:使用Pattern.split替代String.split  回復(fù)  更多評論   

          2009-05-22 12:21 by Sparkle
          而實際上,如果你根本沒想過用正則來split的話,StringTokenizer性能更高

          # re: Java Tips:使用Pattern.split替代String.split  回復(fù)  更多評論   

          2009-05-22 18:51 by dennis
          @Sparkle
          嗯,如果沒用到正則的話,還是StringTokenizer最快,多謝提醒。
          主站蜘蛛池模板: 桂林市| 嘉义县| 阳原县| 高淳县| 福海县| 清新县| 永宁县| 徐汇区| 攀枝花市| 台北县| 缙云县| 仙游县| 神农架林区| 盘山县| 凤城市| 北辰区| 山东| 铜川市| 高要市| 尤溪县| 阿坝| 茂名市| 兰溪市| 织金县| 台前县| 涡阳县| 象州县| 康保县| 闽侯县| 璧山县| 临汾市| 安阳市| 西安市| 定兴县| 颍上县| 浦城县| 涟水县| 翁牛特旗| 浪卡子县| 贡觉县| 天等县|