欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java的split方法使用詳解

 更新時(shí)間:2015年07月02日 09:06:38   投稿:hebedich  
這篇文章主要詳細(xì)介紹了Java的split方法使用說明,十分的細(xì)致全面,有需要的小伙伴可以參考下。

相信大家都經(jīng)常使用String 的split方法,但是大家有沒有遇到下面的這種情況:

大家想想下面的代碼執(zhí)行結(jié)果是什么

public static void main(String[] args) {
    // TODO Auto-generated method stub

    String str1 = "a,b,c,,,a";
    String str2 = "a,b,c,,,";
    String str3 = "a,b,c, , ,";
    String[] s1 = str1.split(",");
    String[] s2 = str2.split(",");
    String[] s3 = str3.split(",");
     System.out.println("str1長度:"+s1.length);
    System.out.println("str2長度:"+s2.length);
    System.out.println("str3長度:"+s3.length);
}

執(zhí)行結(jié)果:

為什么會(huì)出現(xiàn)這樣的結(jié)果呢,查找API發(fā)現(xiàn)了解決方法

解決方法:  

    通過查看API我們發(fā)現(xiàn)我們常用的split方法默認(rèn)傳遞的是0,現(xiàn)在解決str2輸出空的解決方法是傳遞的第二個(gè)參數(shù)為負(fù)數(shù),即可

  public static void main(String[] args) {
    // TODO Auto-generated method stub

    String str1 = "a,b,c,,,a";
    String str2 = "a,b,c,,,";
    String str3 = "a,b,c, , ,";
    String[] s1 = str1.split(",");
    String[] s2 = str2.split(",",-1);
    String[] s3 = str3.split(",",-1);
    
    System.out.println("str1長度:"+s1.length);
    System.out.println("str2長度:"+s2.length);
    System.out.println("str3長度:"+s3.length);
  }

經(jīng)查找API發(fā)現(xiàn)在String類中,存在兩個(gè)split重載方法

1.public String[] split(String regex)

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

該方法的作用就像是使用給定的表達(dá)式和限制參數(shù) 0 來調(diào)用兩參數(shù) split 方法。因此,所得數(shù)組中不包括結(jié)尾空字符串。

例如,字符串 "boo:and:foo" 使用這些表達(dá)式可生成以下結(jié)果:

Regex 結(jié)果

: { "boo", "and", "foo" }
o { "b", "", ":and:f" }

參數(shù):
    regex - 定界正則表達(dá)式
返回:
字符串?dāng)?shù)組,它是根據(jù)給定正則表達(dá)式的匹配拆分此字符串確定的
拋出:
PatternSyntaxException - 如果正則表達(dá)式的語法無效

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

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

此方法返回的數(shù)組包含此字符串的子字符串,每個(gè)子字符串都由另一個(gè)匹配給定表達(dá)式的子字符串終止,或者由此字符串末尾終止。數(shù)組中的子字符串按它們?cè)诖俗址谐霈F(xiàn)的順序排列。如果表達(dá)式不匹配輸入的任何部分,那么所得數(shù)組只具有一個(gè)元素,即此字符串。

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

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

Regex Limit 結(jié)果

: 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" } 

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

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

參數(shù):

regex - 定界正則表達(dá)式
limit - 結(jié)果閾值,如上所述

返回:
字符串?dāng)?shù)組,它是根據(jù)給定正則表達(dá)式的匹配拆分此字符串確定的

拋出:
PatternSyntaxException - 如果正則表達(dá)式的語法無效

相關(guān)文章

  • java操作elasticsearch詳細(xì)方法總結(jié)

    java操作elasticsearch詳細(xì)方法總結(jié)

    elasticsearch是使用Java編寫的一種開源搜索引擎,也是一種分布式的搜索引擎架構(gòu),這篇文章主要給大家介紹了關(guān)于java操作elasticsearch的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • Java之字節(jié)碼以及優(yōu)勢案例講解

    Java之字節(jié)碼以及優(yōu)勢案例講解

    這篇文章主要介紹了Java之字節(jié)碼以及優(yōu)勢案例講解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • Mybatis查詢多條記錄并返回List集合的方法

    Mybatis查詢多條記錄并返回List集合的方法

    這篇文章主要介紹了Mybatis查詢多條記錄并返回List集合的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • 使用Idea連接MySQL的詳細(xì)步驟總結(jié)

    使用Idea連接MySQL的詳細(xì)步驟總結(jié)

    今天給大家?guī)淼氖顷P(guān)于IDEA連接數(shù)據(jù)庫的問題,文章圍繞著使用Idea連接MySQL的詳細(xì)步驟展開,文中有非常詳細(xì)的介紹及圖文示例,需要的朋友可以參考下
    2021-06-06
  • Java使用Hutool執(zhí)行日期的加法和減法操作方法

    Java使用Hutool執(zhí)行日期的加法和減法操作方法

    使用Hutool進(jìn)行日期的加法和減法操作,可以使用`DateUtil.offsetXXX()`方法來實(shí)現(xiàn),這些方法會(huì)返回一個(gè)新的日期,而不是在原日期上進(jìn)行修改,本文給大家介紹Java使用Hutool執(zhí)行日期的加法和減法操作方法,感興趣的朋友一起看看吧
    2023-11-11
  • Java多線程局域網(wǎng)聊天室的實(shí)現(xiàn)

    Java多線程局域網(wǎng)聊天室的實(shí)現(xiàn)

    在學(xué)習(xí)了一個(gè)學(xué)期的java以后,搞了一個(gè)多線程的聊天室,熟悉了一下服務(wù)器和客戶機(jī)的操作。感興趣的小伙伴們可以參考一下
    2021-06-06
  • 你可知HashMap為什么是線程不安全的

    你可知HashMap為什么是線程不安全的

    這篇文章主要介紹了你可知HashMap為什么是線程不安全的,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • springboot使用hibernate validation對(duì)參數(shù)校驗(yàn)的實(shí)現(xiàn)方法

    springboot使用hibernate validation對(duì)參數(shù)校驗(yàn)的實(shí)現(xiàn)方法

    這篇文章主要介紹了spring-boot 使用hibernate validation對(duì)參數(shù)進(jìn)行優(yōu)雅的校驗(yàn),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • java異常:異常處理--try-catch結(jié)構(gòu)詳解

    java異常:異常處理--try-catch結(jié)構(gòu)詳解

    今天小編就為大家分享一篇關(guān)于Java異常處理之try...catch...finally詳解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2021-09-09
  • Java編程計(jì)算兔子生兔子的問題

    Java編程計(jì)算兔子生兔子的問題

    古典問題:有一對(duì)兔子,從出生后第3個(gè)月起每個(gè)月都生一對(duì)兔子,小兔子長到第四個(gè)月后每個(gè)月又生一對(duì)兔子,假如兔子都不死,問每個(gè)月的兔子總數(shù)為多少
    2017-02-02

最新評(píng)論