亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java?split方法使用超詳細講解

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

1. 問題描述

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

2. 方法介紹

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

2.1 split(String regex)

2.1.1 單個分隔符

public class Test {
    public static void main(String[] args) {
        String str="2018,text,今天";
        //單個分隔符用引號括起來即可
        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)\表示一個普通\,\+特殊字符表示字符本身
        String[] data = str.split("\\|");
        for(int i=0;i< data.length;i++){
            System.out.println(data[i]);
        }
    }
}

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

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

2.1.2 多個分隔符

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

 2.1.3 正則表達式表示分隔符

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

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

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

 2.1.4 特殊情況

  1. 字符串開頭有分隔符:開頭產(chǎn)生一個空字符串,其余正常。
  2. 分隔符相互緊挨著:每兩個分隔符產(chǎn)生一個空字符串,若有三個分隔符則會有2各空字符,以此類推。
  3. 字符串最尾部有分割符:末尾產(chǎn)生一個空字符串,其余正常。

2.2 split(String regex, int limit)

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

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

補充:你沒想到的Java中split函數(shù)的用法

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

語法:

 public String[] split(String regex, int limit)
     // regex:正則表達式分割符
     // limit:分割的份數(shù)(等于切分次數(shù)+1),這個參數(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

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

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

結(jié)果

 www
 runoob
 com

如果想要使用多種分割符對字符串分割,可以利用正則表達式的語法| [ ]

 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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 注冊中心配置了spring?security后客戶端啟動報錯

    注冊中心配置了spring?security后客戶端啟動報錯

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

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

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

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

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

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

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

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

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

    淺談JDK9的特性之JVM的xlog

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

    Netty如何自定義編碼解碼器

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

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

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

    Java TimedCache 帶時間緩存工具類詳解使用

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

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

    我們在使用Maven組件來構(gòu)建項目的時候,通常將配置文件放在資源文件目錄下,本文主要介紹了maven中resource配置的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下
    2023-09-09

最新評論