<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是一個正則表達(dá)式,而不是一個普通的字符串,所以導(dǎo)致很多在正則表達(dá)式里面有特殊意義的比如 "." "|" "\" ,如果直接使用是不行的,另外一個方面我們輸入的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í)只要添加一個參數(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) 

    最后一個參數(shù)limit是影響返回數(shù)組的長度的

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

    public String[] split(String regex)

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

    該方法的作用就像是使用給定的表達(dá)式和限制參數(shù) 0 來調(diào)用兩參數(shù) split 方法。因此,結(jié)果數(shù)組中不包括結(jié)尾空字符串(直接使用會造成數(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ù)組包含此字符串的每個子字符串,這些子字符串由另一個匹配給定的表達(dá)式的子字符串終止或由字符串結(jié)束來終止。數(shù)組中的子字符串按它們在此字符串中的順序排列。如果表達(dá)式不匹配輸入的任何部分,則結(jié)果數(shù)組只具有一個元素,即此字符串。

    limit 參數(shù)控制模式應(yīng)用的次數(shù),因此影響結(jié)果數(shù)組的長度如果該限制 n 大于 0,則模式將被最多應(yīng)用 n - 1 次,數(shù)組的長度將不會大于 n,而且數(shù)組的最后項將包含超出最后匹配的定界符的所有輸入。如果 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天海翼| 香蕉免费看一区二区三区| 欧洲精品免费一区二区三区| 免费人妻精品一区二区三区| 国产亚洲综合久久系列| 国产成人精品免费午夜app | 午夜国产精品免费观看| 亚洲av午夜国产精品无码中文字| 中文亚洲AV片不卡在线观看| 日本片免费观看一区二区| 粉色视频免费入口| 亚洲综合无码一区二区| 免费永久在线观看黄网站| 十九岁在线观看免费完整版电影| 亚洲欧美自偷自拍另类视| 亚洲国产精品无码久久久不卡| 国产大片线上免费观看 | 69精品免费视频| 国产亚洲高清在线精品不卡| 亚洲天天做日日做天天欢毛片 | 亚洲精品乱码久久久久久久久久久久 | 日韩在线视频免费| 亚洲导航深夜福利| 久久激情亚洲精品无码?V| 欧洲黑大粗无码免费| 成av免费大片黄在线观看| 亚洲欧美一区二区三区日产| 亚洲爆乳无码专区| 亚洲精品成人a在线观看| 美女裸身网站免费看免费网站| 国产精品美女免费视频观看| 亚洲精品无码专区| 亚洲精品国产第1页| 亚洲国产精品无码成人片久久| 日韩a级毛片免费视频| 真人做人试看60分钟免费视频| 成在人线av无码免费高潮喷水| 免费无码国产在线观国内自拍中文字幕| 亚洲国产高清美女在线观看 | 亚洲国产精品久久久久婷婷老年| 亚洲国产精品一区二区第一页免|