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

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實(shí)現(xiàn)從網(wǎng)絡(luò)下載多個(gè)文件

    java實(shí)現(xiàn)從網(wǎng)絡(luò)下載多個(gè)文件

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)從網(wǎng)絡(luò)下載多個(gè)文件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • Java進(jìn)程內(nèi)緩存框架EhCache詳解

    Java進(jìn)程內(nèi)緩存框架EhCache詳解

    這篇文章主要介紹了Java進(jìn)程內(nèi)緩存框架EhCache,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2021-12-12
  • Java基于Socket實(shí)現(xiàn)多人聊天室

    Java基于Socket實(shí)現(xiàn)多人聊天室

    這篇文章主要為大家詳細(xì)介紹了Java基于Socket實(shí)現(xiàn)多人聊天室,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • 詳解三種java實(shí)現(xiàn)多線程的方式

    詳解三種java實(shí)現(xiàn)多線程的方式

    數(shù)據(jù)時(shí)代的到來(lái),多線程一直都是比較關(guān)心的問(wèn)題之一,這篇文章介紹了JAVA實(shí)現(xiàn)多線程的三種方法,有需要的朋友可以參考一下
    2015-08-08
  • SSM 實(shí)現(xiàn)登錄驗(yàn)證碼功能(附源碼)

    SSM 實(shí)現(xiàn)登錄驗(yàn)證碼功能(附源碼)

    這篇文章主要介紹了SSM 實(shí)現(xiàn)登錄驗(yàn)證碼功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-12-12
  • Java并發(fā)容器之ConcurrentLinkedQueue詳解

    Java并發(fā)容器之ConcurrentLinkedQueue詳解

    這篇文章主要介紹了Java并發(fā)容器之ConcurrentLinkedQueue詳解,加鎖隊(duì)列的實(shí)現(xiàn)較為簡(jiǎn)單,這里就略過(guò),我們來(lái)重點(diǎn)來(lái)解讀一下非阻塞隊(duì)列,
    從點(diǎn)到面, 下面我們來(lái)看下非阻塞隊(duì)列經(jīng)典實(shí)現(xiàn)類(lèi)ConcurrentLinkedQueue,需要的朋友可以參考下
    2023-12-12
  • java抽象類(lèi)和接口定義與用法詳解

    java抽象類(lèi)和接口定義與用法詳解

    這篇文章主要介紹了java抽象類(lèi)和接口定義與用法,結(jié)合實(shí)例形式詳細(xì)分析了java抽象類(lèi)和接口的基本概念、原理、定義、使用方法及操作注意事項(xiàng),需要的朋友可以參考下
    2020-02-02
  • Java?中很好用的數(shù)據(jù)結(jié)構(gòu)(你絕對(duì)沒(méi)用過(guò))

    Java?中很好用的數(shù)據(jù)結(jié)構(gòu)(你絕對(duì)沒(méi)用過(guò))

    今天跟大家介紹的就是?java.util.EnumMap,也是?java.util?包下面的一個(gè)集合類(lèi),同樣的也有對(duì)應(yīng)的的?java.util.EnumSet,對(duì)java數(shù)據(jù)結(jié)構(gòu)相關(guān)知識(shí)感興趣的朋友一起看看吧
    2022-05-05
  • Java 常量字符串過(guò)長(zhǎng)的解決方法

    Java 常量字符串過(guò)長(zhǎng)的解決方法

    這篇文章主要介紹了Java 常量字符串過(guò)長(zhǎng)的解決方法,常量字符串過(guò)長(zhǎng)會(huì)提示報(bào)錯(cuò),下面我們就一起來(lái)了解一下解決方法
    2021-04-04
  • Java使用@Autowired注解獲取對(duì)象為null的幾種情況及解決方法

    Java使用@Autowired注解獲取對(duì)象為null的幾種情況及解決方法

    這篇文章主要給大家介紹了使用@Autowired注解獲取對(duì)象為null的幾種情況以及?解決方法,文中有詳細(xì)的代碼示例講解,具有一定的參考價(jià)值,需要的朋友可以參考下
    2023-09-09

最新評(píng)論