java.lang.String的split()方法

來源:互聯網
上載者:User

 java.lang.String的split()方法

 

 測試如下:
 String a="hello,,,";
 String[] aArr= a.split(",");
 System.out.println("aArr.length="+aArr.length);

 輸出結果:aArr.length=1。該數組只有1個元素:[hello]
 
 --------------------

 String a="hello,,,";
 String[] aArr= a.split(",",0);
 System.out.println("aArr.length="+aArr.length);
 輸出結果:aArr.length=1。該數組只有1個元素:[hello]

 --------------------

 String a="hello,,,";
 String[] aArr= a.split(",",2);
 System.out.println("aArr.length="+aArr.length);
 輸出結果:aArr.length=2。該數組有2個元素:[hello][,,]

 --------------------
 
 String a="hello,,,";
 String[] aArr= a.split(",",-1); //參數為-1。這種情況往往是我們想要的結果。
 System.out.println("aArr.length="+aArr.length);
 輸出結果:aArr.length=4。該數組有4個元素:[hello][][][]。

 

  JAVA5.0的API手冊如是說:
 
  --------------------

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

  根據匹配給定的Regex來拆分此字串。
  此方法返回的數組包含此字串的每個子字串,這些子字串由另一個匹配給定的運算式的子字串終止或由字串結束來終止。數組中的子字串按它們在此字串中的順序排列。如果運算式不匹配輸入的任何部分,則結果數組只具有一個元素,即此字串。

  limit 參數控制模式應用的次數,因此影響結果數組的長度。如果該限制 n 大於 0,則模式將被最多應用 n - 1 次,數組的長度將不會大於 n,而且數組的最後項將包含超出最後匹配的定界符的所有輸入。如果 n 為非正,則模式將被應用儘可能多的次數,而且數組可以是任意長度。如果 n 為零,則模式將被應用儘可能多的次數,數組可有任何長度,並且結尾Null 字元串將被丟棄。

  例如,字串 "boo:and:foo" 使用這些參數可產生下列結果:

  Regex    Limit          結果
    :        2          { "boo", "and:foo" }
    :        5          { "boo", "and", "foo" }
    :       -2          { "boo", "and", "foo" }
    o        5          { "b", "", ":and:f", "", "" }
    o       -2          { "b", "", ":and:f", "", "" }
    o        0          { "b", "", ":and:f" }

  這種形式的方法調用 str.split(regex, n) 產生與以下運算式完全相同的結果:

  Pattern.compile(regex).split(str, n)

  參數:
    regex - 定界Regex
    limit - 結果閾值,如上所述

  返回:
    字串數組,根據給定Regex的匹配來拆分此字串,從而產生此數組。

  拋出:
    PatternSyntaxException - 如果Regex的文法無效

  從以下版本開始:
    1.4

  --------------------

 

  另外,Regex中"."、"|"、"+"、"*"都是逸出字元,在split()中使用時,需要加"//"。

  如split("//.")、split("//|")、split("//+")、split("//*")。

  

[完]

                                     2008/11/11 於京

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.