<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Rising Sun

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      148 隨筆 :: 0 文章 :: 22 評論 :: 0 Trackbacks

    首先來看問題,然后來看函數(shù)的定義,其實(shí)什么都在函數(shù)定義里面說明白了

    1.正則表達(dá)式字符串問題

    首先輸入的regex是一個(gè)正則表達(dá)式,而不是一個(gè)普通的字符串,所以導(dǎo)致很多在正則表達(dá)式里面有特殊意義的比如 "." "|" "\" ,如果直接使用是不行的,另外一個(gè)方面我們輸入的regex是以字符串形式傳遞的,對有些字符必須要轉(zhuǎn)義,尤其是"\",下面請看例子

    String[] aa = "aaa|bbb|ccc".split("|");//wrong
    String[] aa = "aaa|bbb|ccc".split("\\|"); //

     

     String[] aa = "aaa*bbb*ccc".split("*");//wrong
     String[] aa = "aaa|bbb|ccc".split("\\*");

     

     String[] aa = "aaa*bbb*ccc".split(".");//wrong
     String[] aa = "aaa|bbb|ccc".split("\\.");

     

    String[] aa = "aaa\\bbb\\bccc".split("\\");//wrong

    String[] aa = "aaa\\bbb\\bccc".split("\\\\");

     

    2.數(shù)組長度的問題

    String a = "";
    String[] b = a.split(",");
    b.length為 1;
    *
    String a = "c";
    String[] b = a.split(",");
    b.length為 1;
    **
    String a = "c,,,";
    String[] b = a.split(",");
    b.length為 1;
    ***
    String a = "c,,c";
    String[] b = a.split(",");
    b.length為 3;
    ****
    String a = ",";
    String[] b = a.split(",");
    b.length為 0;

     

    其實(shí)只要添加一個(gè)參數(shù)即可,例如

    String str = "abcdef,ghijk,lmno,pqrst,,,";       

    String[] array = str.split(",");
    輸出:abcdef,ghijk,lmno,pqrst,

     

    String str = "abcdef,ghijk,lmno,pqrst,,,";
    String[] array 
    = str.split(",",-1);

    輸出:abcdef,ghijk,lmno,pqrst,,,,

     

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

    最后一個(gè)參數(shù)limit是影響返回?cái)?shù)組的長度的

    =========================請關(guān)注紅色字體(括號內(nèi)為注釋)==========================================

    public String[] split(String regex)

    根據(jù)給定的正則表達(dá)式的匹配來拆分此字符串。

    該方法的作用就像是使用給定的表達(dá)式和限制參數(shù) 0 來調(diào)用兩參數(shù) split 方法。因此,結(jié)果數(shù)組中不包括結(jié)尾空字符串(直接使用會(huì)造成數(shù)組大小問題)

    例如,字符串 "boo:and:foo" 產(chǎn)生帶有下面這些表達(dá)式的結(jié)果:

    Regex結(jié)果
    :{ "boo", "and", "foo" }
    o{ "b", "", ":and:f" }

     

    參數(shù):
    regex - 定界正則表達(dá)式
    返回:
    字符串?dāng)?shù)組,根據(jù)給定正則表達(dá)式的匹配來拆分此字符串,從而生成此數(shù)組。

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

    根據(jù)匹配給定的正則表達(dá)式來拆分此字符串。

    此方法返回的數(shù)組包含此字符串的每個(gè)子字符串,這些子字符串由另一個(gè)匹配給定的表達(dá)式的子字符串終止或由字符串結(jié)束來終止。數(shù)組中的子字符串按它們在此字符串中的順序排列。如果表達(dá)式不匹配輸入的任何部分,則結(jié)果數(shù)組只具有一個(gè)元素,即此字符串。

    limit 參數(shù)控制模式應(yīng)用的次數(shù),因此影響結(jié)果數(shù)組的長度如果該限制 n 大于 0,則模式將被最多應(yīng)用 n - 1 次,數(shù)組的長度將不會(huì)大于 n,而且數(shù)組的最后項(xiàng)將包含超出最后匹配的定界符的所有輸入。如果 n 為非正,則模式將被應(yīng)用盡可能多的次數(shù),而且數(shù)組可以是任意長度。如果 n 為零,則模式將被應(yīng)用盡可能多的次數(shù),數(shù)組可有任何長度,并且結(jié)尾空字符串將被丟棄

    例如,字符串 "boo:and:foo" 使用這些參數(shù)可生成下列結(jié)果:

    RegexLimit結(jié)果
    :2{ "boo", "and:foo" }
    :5{ "boo", "and", "foo" }
    :-2{ "boo", "and", "foo" }
    o5{ "b", "", ":and:f", "", "" }
    o-2{ "b", "", ":and:f", "", "" }
    o0{ "b", "", ":and:f" }

    這種形式的方法調(diào)用 str.split(regex, n) 產(chǎn)生與以下表達(dá)式完全相同的結(jié)果:

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

     

    參數(shù):
    regex - 定界正則表達(dá)式
    limit - 結(jié)果閾值,如上所述
    返回:
    字符串?dāng)?shù)組,根據(jù)給定正則表達(dá)式的匹配來拆分此字符串,從而生成此數(shù)組

     

    posted on 2014-04-28 10:15 brock 閱讀(247) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 久久精品亚洲一区二区三区浴池| 亚洲精彩视频在线观看| 成在人线av无码免费高潮喷水| 午夜亚洲www湿好大| 成年性午夜免费视频网站不卡| 男女一边桶一边摸一边脱视频免费| 337p日本欧洲亚洲大胆艺术| 日本免费一区二区三区最新vr| a级成人毛片免费视频高清| 亚洲国产精品一区二区三区在线观看| 亚洲精品NV久久久久久久久久| 免费无码毛片一区二区APP| 九九精品国产亚洲AV日韩| 亚洲五月激情综合图片区| 国产成人无码a区在线观看视频免费| a毛片免费观看完整| 欧美亚洲国产SUV| 久久久久亚洲av无码专区喷水| 又爽又黄无遮挡高清免费视频| 免费视频爱爱太爽了| eeuss影院www天堂免费| 亚洲私人无码综合久久网| 亚洲精品综合一二三区在线 | 国产av无码专区亚洲av毛片搜| 国产亚洲精品无码成人| 成人永久免费福利视频网站| 亚洲免费在线视频| 一区在线免费观看| 亚洲色大网站WWW永久网站| 亚洲激情中文字幕| 亚洲精品国产综合久久一线| 成年女人毛片免费观看97| 久久午夜伦鲁片免费无码| 特a级免费高清黄色片| 亚洲国产一区二区三区在线观看| 亚洲一区综合在线播放| 老司机亚洲精品影视www| 在线观看国产情趣免费视频| 我的小后妈韩剧在线看免费高清版| 91成人免费福利网站在线| 一级毛片a免费播放王色电影|