最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JAVA中split函數(shù)的常見(jiàn)用法實(shí)例

 更新時(shí)間:2022年07月18日 16:15:44   作者:專(zhuān)打瘸子那條好腿  
Java中我們可以利用split把字符串按照指定的分割符進(jìn)行分割,然后返回字符串?dāng)?shù)組,下面這篇文章主要給大家介紹了關(guān)于JAVA中split函數(shù)的常見(jiàn)用法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

只寫(xiě)經(jīng)常使用的,并不完整。

1.基本用法,將字符串按照指定字符串進(jìn)行分割,例如:

public class Main {
    public static void main(String[] args) {
        String ss = "abcabcdefg";
        String[] split = ss.split("bc");
        for(String st:split){
            System.out.println(st);
        }
        System.out.println("分隔后字符串?dāng)?shù)組長(zhǎng)度為");
        System.out.println(split.length);
    }
}

輸出:

a
a
defg
分隔后字符串?dāng)?shù)組長(zhǎng)度為
3

2.需要使用多個(gè)字符進(jìn)行分割:使用split("[]"),其中[]里面存放需要分割的字符,注意,現(xiàn)在是按照字符來(lái)分割,例如:

public class Main {
    public static void main(String[] args) {
        String ss = "abcabcdefg";
        String[] split = ss.split("[bc]");
        for(String st:split){
            System.out.println(st);
        }
        System.out.println("分隔后字符串?dāng)?shù)組長(zhǎng)度為");
        System.out.println(split.length);
    }
}

輸出:

a

a

defg
分隔后字符串?dāng)?shù)組長(zhǎng)度為
5

原因是將b和c都當(dāng)作分割的字符。

用法其實(shí)上面兩條差不多就可以了,重要的是一些特殊情況:

情況1:字符串中有連續(xù)的分割符,例如2中,b也是分割符c也是分隔符,那么在分割bc時(shí)會(huì)產(chǎn)生一個(gè)空字符(""),n個(gè)連續(xù)的分割符會(huì)產(chǎn)生n-1個(gè)空字符。下面是調(diào)試時(shí)的信息:

可以看到中間產(chǎn)生了空字符。

情況2:分割符出現(xiàn)在首部,那么出現(xiàn)幾個(gè)分割符,就有多少個(gè)空字符。例如

public class Main {
    public static void main(String[] args) {
        String ss = "aaabcabcdefg";
        String[] split = ss.split("[a]");
        for(String st:split){
            System.out.println(st);
        }
        System.out.println("分隔后字符串?dāng)?shù)組長(zhǎng)度為");
        System.out.println(split.length);
    }
}

輸出:


bc
bcdefg
分隔后字符串?dāng)?shù)組長(zhǎng)度為
5

前面3個(gè)a都是空字符。

情況3:有些正則表達(dá)式,這是一種特殊情況,如,*等符號(hào)需要添加轉(zhuǎn)義字符\。

解決方法:

針對(duì)出現(xiàn)空字符,可以寫(xiě)一個(gè)遍歷,長(zhǎng)度為0的過(guò)濾掉。

for(String st:split){
            if(st.length()>0){
                list.add(st);
            }
        }

針對(duì)轉(zhuǎn)義字符,編譯器會(huì)報(bào)錯(cuò),就試試添加\。

補(bǔ)充:Java中Split函數(shù)的用法技巧

在java.lang包中也有String.split()方法,與.net的類(lèi)似,都是返回是一個(gè)字符型數(shù)組,但使用過(guò)程中還有一些小技巧。

如執(zhí)行:"2|33|4".split("|")

出來(lái)的結(jié)果是:

""

2

|

3

3

|

4

奇怪吧,不過(guò)注意看一下API說(shuō)明還是知道原因的.

java.lang.string.split

split 方法

將一個(gè)字符串分割為子字符串,然后將結(jié)果作為字符串?dāng)?shù)組返回。

stringObj.split([separator,[limit]])

參數(shù)

  • stringObj
    必選項(xiàng)。要被分解的 String 對(duì)象或文字。該對(duì)象不會(huì)被 split 方法修改。
  • separator
    可選項(xiàng)。字符串或 正則表達(dá)式對(duì)象,它標(biāo)識(shí)了分隔字符串時(shí)使用的是一個(gè)還是多個(gè)字符。如果忽略該選項(xiàng),返回包含整個(gè)字符串的單一元素?cái)?shù)組。
  • limit
    可選項(xiàng)。該值用來(lái)限制返回?cái)?shù)組中的元素個(gè)數(shù)。

說(shuō)明

split 方法的結(jié)果是一個(gè)字符串?dāng)?shù)組,在 stingObj 中每個(gè)出現(xiàn) separator 的位置都要進(jìn)行分解

所以正常的寫(xiě)法是這樣的:

1、如果用“.”作為分隔的話,必須是如下寫(xiě)法:String.split("\\."),這樣才能正確的分隔開(kāi),不能用String.split(".");

2、如果用“|”作為分隔的話,必須是如下寫(xiě)法:String.split("\\|"),這樣才能正確的分隔開(kāi),不能用String.split("|");
“.”和“|”都是轉(zhuǎn)義字符,必須得加"\\";

3、如果在一個(gè)字符串中有多個(gè)分隔符,可以用“|”作為連字符,比如:“a=1 andb =2 or c=3”,把三個(gè)都分隔出來(lái),可以用String.split("and|or");

總結(jié)

到此這篇關(guān)于JAVA中split函數(shù)的常見(jiàn)用法的文章就介紹到這了,更多相關(guān)Java split函數(shù)用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解Java的Struts框架中棧值和OGNL的使用

    詳解Java的Struts框架中棧值和OGNL的使用

    這篇文章主要介紹了Java的Struts框架中棧值和OGNL的使用,Struts框架是Java的SSH三大web開(kāi)發(fā)框架之一,需要的朋友可以參考下
    2015-11-11
  • java spring整合junit操作(有詳細(xì)的分析過(guò)程)

    java spring整合junit操作(有詳細(xì)的分析過(guò)程)

    這篇文章主要介紹了java spring整合junit操作(有詳細(xì)的分析過(guò)程),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-08-08
  • Java線程安全基礎(chǔ)概念解析

    Java線程安全基礎(chǔ)概念解析

    這篇文章主要介紹了Java線程安全基礎(chǔ)概念解析,希望給大家一個(gè)參考,需要的朋友可以了解下。
    2017-09-09
  • java通過(guò)證書(shū)訪問(wèn)etcd的實(shí)現(xiàn)步驟

    java通過(guò)證書(shū)訪問(wèn)etcd的實(shí)現(xiàn)步驟

    Etcd提供了多種語(yǔ)言的客戶(hù)端庫(kù),本文主要介紹了java通過(guò)證書(shū)訪問(wèn)etcd的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-05-05
  • 如何給yml配置文件的密碼加密(SpringBoot)

    如何給yml配置文件的密碼加密(SpringBoot)

    這篇文章主要介紹了如何給yml配置文件的密碼加密(SpringBoot),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • springboot過(guò)濾器和攔截器的實(shí)例代碼

    springboot過(guò)濾器和攔截器的實(shí)例代碼

    這篇文章主要介紹了springboot過(guò)濾器和攔截器的實(shí)例代碼,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-07-07
  • Java序列化的原理分析及解決

    Java序列化的原理分析及解決

    文章介紹了Java中的序列化機(jī)制,包括Serializable和Externalizable接口的區(qū)別,以及serialVersionUID的作用,Serializable接口可以序列化的所有子類(lèi)型本身都是可序列化的,如果要序列化的類(lèi)有父類(lèi),父類(lèi)也應(yīng)該實(shí)現(xiàn)Serializable接口
    2024-11-11
  • Spring?Boot?使用?SSE?方式向前端推送數(shù)據(jù)詳解

    Spring?Boot?使用?SSE?方式向前端推送數(shù)據(jù)詳解

    這篇文章主要介紹了Spring?Boot?使用SSE方式向前端推送數(shù)據(jù)詳解,SSE簡(jiǎn)單的來(lái)說(shuō)就是服務(wù)器主動(dòng)向前端推送數(shù)據(jù)的一種技術(shù),它是單向的,也就是說(shuō)前端是不能向服務(wù)器發(fā)送數(shù)據(jù)的
    2022-08-08
  • Spring事務(wù)aftercommit原理及實(shí)踐

    Spring事務(wù)aftercommit原理及實(shí)踐

    這篇文章主要為大家介紹了Spring事務(wù)aftercommit原理及實(shí)踐,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • 如何在SpringBoot中添加攔截器忽略請(qǐng)求URL當(dāng)中的指定字符串

    如何在SpringBoot中添加攔截器忽略請(qǐng)求URL當(dāng)中的指定字符串

    這篇文章主要介紹了在SpringBoot中添加攔截器忽略請(qǐng)求URL當(dāng)中的指定字符串,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-08-08

最新評(píng)論

来凤县| 汉沽区| 保亭| 蓬安县| 兴隆县| 锦屏县| 余江县| 双牌县| 资源县| 怀柔区| 阿拉善盟| 陇西县| 泽州县| 固阳县| 大港区| 沧州市| 怀柔区| 柳林县| 黔南| 房山区| 隆子县| 林芝县| 基隆市| 临猗县| 鄂温| 林西县| 琼结县| 沾益县| 罗江县| 滨海县| 娱乐| 安陆市| 肃宁县| 大理市| 麻城市| 满城县| 宜昌市| 崇文区| 千阳县| 鄂伦春自治旗| 华容县|