Rising Sun

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            148 隨筆 :: 0 文章 :: 22 評(píng)論 :: 0 Trackbacks
          <2014年4月>
          303112345
          6789101112
          13141516171819
          20212223242526
          27282930123
          45678910

          常用鏈接

          留言簿(10)

          隨筆分類

          隨筆檔案

          相冊(cè)

          java--->ajax

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

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

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

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

          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ù)組長(zhǎng)度的問題

          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ù)組的長(zhǎng)度的

          =========================請(qǐng)關(guān)注紅色字體(括號(hào)內(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ù)組中的子字符串按它們?cè)诖俗址械捻樞蚺帕?。如果表達(dá)式不匹配輸入的任何部分,則結(jié)果數(shù)組只具有一個(gè)元素,即此字符串。

          limit 參數(shù)控制模式應(yīng)用的次數(shù),因此影響結(jié)果數(shù)組的長(zhǎng)度。如果該限制 n 大于 0,則模式將被最多應(yīng)用 n - 1 次,數(shù)組的長(zhǎng)度將不會(huì)大于 n,而且數(shù)組的最后項(xiàng)將包含超出最后匹配的定界符的所有輸入。如果 n 為非正,則模式將被應(yīng)用盡可能多的次數(shù),而且數(shù)組可以是任意長(zhǎng)度。如果 n 為零,則模式將被應(yīng)用盡可能多的次數(shù),數(shù)組可有任何長(zhǎng)度,并且結(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 閱讀(261) 評(píng)論(0)  編輯  收藏

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 巫溪县| 延边| 北碚区| 宽甸| 始兴县| 岢岚县| 安陆市| 吐鲁番市| 凌源市| 丽江市| 武威市| 霸州市| 漠河县| 项城市| 京山县| 中江县| 剑阁县| 岳阳市| 夏邑县| 七台河市| 大同县| 河间市| 永济市| 昂仁县| 凌云县| 高碑店市| 绥德县| 平江县| 阜新| 永丰县| 富源县| 建平县| 陆丰市| 定西市| 扎鲁特旗| 湖南省| 东安县| 容城县| 大连市| 乐平市| 仪征市|