Swing


          天行健 君子以自強不息

          posts - 69, comments - 215, trackbacks - 0, articles - 16
             :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          關于String類的split方法

          Posted on 2007-05-08 11:43 zht 閱讀(1164) 評論(0)  編輯  收藏 所屬分類: J2se

          雖然使用正則表達式能很好的進行字符串的解析、提取、替換,但是對于一些簡單的應用,使用 String 類提供的一些方法就可以很好的完成,最突出的就是 split 方法。

          split 方法能夠很方便的將字符串按照一定的規則拆分開。

          比如對于下面的字符串:

          Tom,Jane,Tony,Elva,Gigi

          只要調用如下的代碼就可以將各個名字提取出來:

          String value = "Tom,Jane,Tony,Elva,Gigi";

          String[] names = value.split(",");

          for(int i=0,n=names.length;i<n;i++)

          {

               System.out.println(names[i]);

          }

          運行結果:

          Tom

          Jane

          Tony

          Elva

          Gigi

           

          看到這個運行結果,很多人都認為 split 方法就是按照給定的字符串對字符串進行拆分,知道碰到了下面的問題。

          有一個字符串:中國 . 北京 . 海淀 . 學院路。請解析此字符串,并打印輸出“中國 北京 海淀 學院路 ”。

          于是寫代碼如下:

          String value = " 中國 . 北京 . 海淀 . 學院路 ";

          String[] names = value.split(".");

          for(int i=0,n=names.length;i<n;i++)

          {

               System.out.print(names[i]+" ");

          }

          運行結果:

           

          對,沒看錯!沒有任何輸出!

          讓我們來看看 split 方法的方法簽名吧:

          public String[] split(String regex)

          這里的參數的名稱是 regex ,也就是 Regular Expression (正則表達式)。這個參數并不是一個簡單的分割用的字符,而是一個正則表達式,看了 split 方法的實現代碼就更堅定了我們的信心:

          public String[] split(String regex, int limit) {

               return Pattern.compile(regex).split(this, limit);

          }

          split 的實現直接調用的 Matcher 類的 split 的方法。讀者已經知道,“ . ”在正則表達式中有特殊的含義,因此我們使用的時候必須進行轉義。

          修改代碼如下:

          private static void split2()

          {

               String value = " 中國 . 北京 . 海淀 . 學院路 ";

               String[] names = value.split("\\.");

               for(int i=0,n=names.length;i<n;i++)

               {

                   System.out.print(names[i]+" ");

               }

          }

          運行結果

          中國 北京 海淀 學院路

          主站蜘蛛池模板: 梅河口市| 循化| 浦北县| 娄底市| 隆德县| 天等县| 枣庄市| 广南县| 呼图壁县| 花垣县| 兴业县| 昌都县| 二连浩特市| 尼勒克县| 黎城县| 唐河县| 松阳县| 郯城县| 常州市| 内黄县| 理塘县| 洛扎县| 旌德县| 如东县| 紫阳县| 布拖县| 德格县| 新郑市| 常熟市| 甘孜县| 潞城市| 桂东县| 崇礼县| 淄博市| 甘肃省| 离岛区| 郯城县| 宜阳县| 乡城县| 潼关县| 大化|