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

Java?split方法使用超詳細(xì)講解

 更新時(shí)間:2023年10月10日 11:54:41   作者:Chen_PK  
這篇文章主要給大家介紹了關(guān)于Java?split方法使用的相關(guān)資料,Java中的我們可以利用split把字符串按照指定的分割符進(jìn)行分割,然后返回字符串?dāng)?shù)組,需要的朋友可以參考下

1. 問(wèn)題描述

描述:在日常編寫代碼時(shí),我們經(jīng)常遇到需要將一串字符串中的數(shù)據(jù)進(jìn)行分析摘取,從中獲得分隔符外的數(shù)據(jù),此時(shí)便不得不提split方法。

2. 方法介紹

分隔符可以是任意字符、符號(hào)、數(shù)字、字符串等。

2.1 split(String regex)

2.1.1 單個(gè)分隔符

public class Test {
    public static void main(String[] args) {
        String str="2018,text,今天";
        //單個(gè)分隔符用引號(hào)括起來(lái)即可
        String[] data = str.split(",");
        for(int i=0;i< data.length;i++){
            System.out.println(data[i]);
        } 
    }
}

 上述代碼輸出結(jié)果

 如果分隔符本身就是"|",那么就需要使用轉(zhuǎn)義字符"\"讓其產(chǎn)生效果,否則結(jié)果相反。

public class Test {
    public static void main(String[] args) {
        String str="a|bc|8";
        //java中\(zhòng)\表示一個(gè)普通\,\+特殊字符表示字符本身
        String[] data = str.split("\\|");
        for(int i=0;i< data.length;i++){
            System.out.println(data[i]);
        }
    }
}

 反之如果直接使用則會(huì)有相反效果, 輸出字符串中的單個(gè)字符。如下所示:

public class Test {
    public static void main(String[] args) {
        String str="a|bc|8";
        //java中\(zhòng)\表示一個(gè)普通\,\+特殊字符表示字符本身
        String[] data = str.split("|");
        for(int i=0;i< data.length;i++){
            System.out.println(data[i]);
        }
    }
}

2.1.2 多個(gè)分隔符

public class Test {
    public static void main(String[] args) {
        String str="2021年11月18日;英語(yǔ),數(shù)學(xué),語(yǔ)文;";
        //多個(gè)分隔符用引號(hào)括起來(lái),并且用“|”進(jìn)行分割
        String[] data = str.split(",|;");
        for(int i=0;i< data.length;i++){
            System.out.println(data[i]);
        } 
    }
}

 2.1.3 正則表達(dá)式表示分隔符

在正則表達(dá)式中"\d+"表示一個(gè)或多個(gè)數(shù)字,是用于從一堆數(shù)字字母以及其它字符組成的字符串中獲取非數(shù)字字符或字符串。

public class Test {
    public static void main(String[] args) {
        String str="2018年11月18日abcd85gg688";
        //正則表達(dá)式中\(zhòng)d+表示一個(gè)或多個(gè)數(shù)字,java中\(zhòng)\表示一個(gè)普通\
        String[] data = str.split("\\d+");
        for(int i=0;i< data.length;i++){
            System.out.println(data[i]);
        } 
    }
}

 上述代碼輸出結(jié)果

 2.1.4 特殊情況

  1. 字符串開(kāi)頭有分隔符:開(kāi)頭產(chǎn)生一個(gè)空字符串,其余正常。
  2. 分隔符相互緊挨著:每?jī)蓚€(gè)分隔符產(chǎn)生一個(gè)空字符串,若有三個(gè)分隔符則會(huì)有2各空字符,以此類推。
  3. 字符串最尾部有分割符:末尾產(chǎn)生一個(gè)空字符串,其余正常。

2.2 split(String regex, int limit)

  1. 如果 limit > 0,(從左到右)最多分割 n - 1 次,數(shù)組的長(zhǎng)度將不會(huì)大于 n,結(jié)尾的空字符串不會(huì)丟棄。
  2. 如果 limit < 0,匹配到多少次就分割多少次,而且數(shù)組可以是任何長(zhǎng)度。結(jié)尾的空字符串不會(huì)丟棄。
  3. 如果 limit = 0,匹配到多少次就分割多少次,數(shù)組可以是任何長(zhǎng)度,并且結(jié)尾空字符串將被丟棄。

也就是說(shuō),使用split方法時(shí),如果只填一個(gè)正則表達(dá)式,結(jié)尾空字符串將被丟棄

補(bǔ)充:你沒(méi)想到的Java中split函數(shù)的用法

split:字符串切分,返回String數(shù)組

語(yǔ)法:

 public String[] split(String regex, int limit)
     // regex:正則表達(dá)式分割符
     // limit:分割的份數(shù)(等于切分次數(shù)+1),這個(gè)參數(shù)可以不給

代碼示例:

 String str = "Welcome-to-Runoob";
 for(String retval: str.split("-")){
     System.out.println(retval);
 }

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

 Welcome
 to
 Runoob

如果將第二行中的某部分改寫為

 Str.split("-",2)

則結(jié)果變?yōu)椋?/p>

 Welcome
 to-Runoob

由于在正則表達(dá)式語(yǔ)法中有很多特殊字符,比如.*、?+,所以有時(shí)會(huì)用到轉(zhuǎn)義字符,比如

 str = new String("www.runoob.com");
 for(String retval: str.split("\\.",3)){
     System.out.println(retval);
 }

結(jié)果

 www
 runoob
 com

如果想要使用多種分割符對(duì)字符串分割,可以利用正則表達(dá)式的語(yǔ)法| [ ]

 String str = new String("1+22*333-4444/5555%666666=?");
 for(String retval: str.split("[+*-/%]")){
     System.out.println(retval); 
 }
 for(String retval: str.split("[0-9.]+")){
     System.out.println(retval);
 }
 for(String retval: str.split("(\\+)|(-)|(\\*)|(/)|(%)")){
     System.out.println(retval); 
 }
 for(String retval: str.split("[^0-9.]")){
     System.out.println(retval); 
 }

結(jié)果:

 1
 22
 333
 4444
 5555
 666666=?
 ?
 +
 *
 -
 /
 %
 =?
 1
 22
 333
 4444
 5555
 666666=?
 1
 22
 333
 4444
 5555
 666666

總結(jié)

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

相關(guān)文章

  • 注冊(cè)中心配置了spring?security后客戶端啟動(dòng)報(bào)錯(cuò)

    注冊(cè)中心配置了spring?security后客戶端啟動(dòng)報(bào)錯(cuò)

    這篇文章主要為大家介紹了注冊(cè)中心配置了spring?security后客戶端啟動(dòng)報(bào)錯(cuò)問(wèn)題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • Java反射學(xué)習(xí) getClass()函數(shù)應(yīng)用

    Java反射學(xué)習(xí) getClass()函數(shù)應(yīng)用

    所謂反射,可以理解為在運(yùn)行時(shí)期獲取對(duì)象類型信息的操作,本文將詳細(xì)介紹,需要的朋友可以參考下
    2012-12-12
  • java中的equals()和toString()方法實(shí)例詳解

    java中的equals()和toString()方法實(shí)例詳解

    這篇文章主要介紹了java中的equals()和toString()方法實(shí)例詳解的相關(guān)資料,這里舉例說(shuō)明,并附實(shí)例代碼,和實(shí)現(xiàn)效果圖,需要的朋友可以參考下
    2016-11-11
  • spring注入在有常量的情況下使用@AllArgsConstructor操作

    spring注入在有常量的情況下使用@AllArgsConstructor操作

    這篇文章主要介紹了spring注入在有常量的情況下使用@AllArgsConstructor操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • 詳解WebSocket+spring示例demo(已使用sockJs庫(kù))

    詳解WebSocket+spring示例demo(已使用sockJs庫(kù))

    本篇文章主要介紹了WebSocket spring示例demo(已使用sockJs庫(kù)),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-01-01
  • 淺談JDK9的特性之JVM的xlog

    淺談JDK9的特性之JVM的xlog

    在java程序中,我們通過(guò)日志來(lái)定位和發(fā)現(xiàn)項(xiàng)目中可能出現(xiàn)的問(wèn)題。在現(xiàn)代java項(xiàng)目中,我們使用log4j或者slf4j,Logback等日志記錄框架來(lái)處理日志問(wèn)題。本文將介紹JDK9的特性之JVM的xlog。
    2021-06-06
  • Netty如何自定義編碼解碼器

    Netty如何自定義編碼解碼器

    Netty自定義編碼解碼器:InboundHandler處理入棧數(shù)據(jù),OutboundHandler處理出棧數(shù)據(jù),解碼器繼承ByteToMessageDecoder,編碼器繼承MessageToByteEncoder,ReplayingDecoder簡(jiǎn)化了解碼邏輯,但可能因異常重試導(dǎo)致性能下降
    2025-03-03
  • java類中元素初始化順序詳解

    java類中元素初始化順序詳解

    對(duì)于靜態(tài)變量、靜態(tài)初始化塊、變量、初始化塊、構(gòu)造器,它們的初始化順序依次是(靜態(tài)變量、靜態(tài)初始化塊)>(變量、初始化塊)>構(gòu)造器
    2013-08-08
  • Java TimedCache 帶時(shí)間緩存工具類詳解使用

    Java TimedCache 帶時(shí)間緩存工具類詳解使用

    工具類是包含集合框架、遺留的 collection 類、事件模型、日期和時(shí)間設(shè)施、國(guó)際化和各種實(shí)用工具類(字符串標(biāo)記生成器、隨機(jī)數(shù)生成器和位數(shù)組、日期Date類、堆棧Stack類、向量Vector類等)。集合類、時(shí)間處理模式、日期工具等各類常用工具包,本文將介紹帶時(shí)間緩存工具類
    2021-10-10
  • maven中resource配置的實(shí)現(xiàn)示例

    maven中resource配置的實(shí)現(xiàn)示例

    我們?cè)谑褂肕aven組件來(lái)構(gòu)建項(xiàng)目的時(shí)候,通常將配置文件放在資源文件目錄下,本文主要介紹了maven中resource配置的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09

最新評(píng)論