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

Java 切割字符串的幾種方式集合

 更新時(shí)間:2021年09月03日 12:05:36   作者:julystroy  
這篇文章主要介紹了Java 切割字符串的幾種方式集合,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Java 切割字符串的幾種方式

//以data  為案例參數(shù)。
String   data = "2019-01-08 21:55 136 \n2019-01-08 22:00 86 \n2019-01-08 22:04 136 \n2019-01-08 22:09 86 \n2019-01-08 22:12 136 \n2019-01-14 10:49 86 \n";

已下排名按效率高低,如果有疑問自己可以設(shè)置時(shí)間戳,自己測(cè)試吧。

1、StringTokenizer切割

是java.util中的一個(gè)類,包含的api有:

其中,countTokens為length;nextToken可以獲取它的下一個(gè)字符串,其中delim為分隔符。

2、..split("*")分割

最方便,運(yùn)用最多的,不解釋。

String[] split = data.split("\n");
        if (split != null && split.length != 0) {
          
            for (int i = 0; i < split.length-1; i++) {
                String[] split1 = split[i].split(":");
                 ···
                }
            }

3、調(diào)用String自己的api subString()

運(yùn)用2的代碼塊

String[] split = data.split("\n");
        if (split != null && split.length != 0) {
            for (int i = 0; i < split.length-1; i++) {
                System.out.println(split[i]);
 
                String time = split[i].substring(0, 16);//前半部分 16為index
                System.out.println(time);
                String num = split[i].substring(17);//剩余部分  index +2;
                System.out.println(num);
                }
            }

輸出結(jié)果:

2019-01-08 21:55 136
2019-01-08 21:55
136

2019-01-08 22:00 86
2019-01-08 22:00
86

2019-01-08 22:04 136
2019-01-08 22:04
136

2019-01-08 22:09 86
2019-01-08 22:09
86

2019-01-08 22:12 136
2019-01-08 22:12
136

其中上面的split[i].substring(0, 15);15是我字符串我這邊功能需要寫死了的,你可以通過indexOf(int ch)獲取位置。

正則獲取時(shí)間,然后.replaceAll(String regex,String replacement)那時(shí)間用” “代替,剩下的字符串就是時(shí)間以外的字符串了。

java優(yōu)雅的切割字符串

切割字符串

分隔字符串是java中常用的操作,String的split方法可以進(jìn)行字符串切割操作,然而日常使用卻僅僅限于str.split("-"),其中“-”為分隔符。其實(shí)split方法很強(qiáng)大,有更優(yōu)雅的方式去切割字符串

使用方法

public String[] split(String regex)

其中regex代表正則表達(dá)式分隔符,我們平時(shí)使用單個(gè)字符作為分隔符,其實(shí)可以看做是特殊的正則表達(dá)式,特殊之處在于這種表達(dá)式在匹配自身,如"-"只匹配"-",示例如下:

String string = "86-15003455666";
String[] parts = string.split("-");
String part1 = parts[0]; // 86
String part2 = parts[1]; // 15003455666

split還有另一種用法

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

regex指的是正則表達(dá)式分隔符,limit值的是分隔的份數(shù),如:

String string = "004-556-42";
String[] parts = string.split("-", 2);   // 限定分割兩份
String part1 = parts[0]; // 004
String part2 = parts[1]; // 556-42

在某些場(chǎng)景下,我們可能想要在結(jié)果中保留分隔符,這也是可以做到的,設(shè)置分隔符與分割后的左側(cè)結(jié)果相連

String string = "86-15003455666";
String[] parts = string.split("(?<=-)");
String part1 = parts[0]; // 86-
String part2 = parts[1]; // 15003455666

設(shè)置分隔符與分割后右側(cè)的結(jié)果相連:

String string = "86-15003455666";
String[] parts = string.split("(?=-)");
String part1 = parts[0]; // 86-
String part2 = parts[1]; // 15003455666

所以說要妙用正則表達(dá)式,代碼示例:

//\d代表數(shù)字,+代表出現(xiàn)一次或多次。所以(\\d+)-(\\d+)匹配用"-"相連的兩個(gè)數(shù)字串
    // Pattern 對(duì)象是正則表達(dá)式的編譯表示
    private static Pattern twopart = Pattern.compile("(\\d+)-(\\d+)");
    public static void checkString(String s)
    {
        // Matcher對(duì)象對(duì)輸入字符串進(jìn)行解釋和匹配操作
        Matcher m = twopart.matcher(s);
        if (m.matches()) {
            //m.group(1) 和 m.group(2) 存儲(chǔ)分割后的子串
            System.out.println(s + " matches; first part is " + m.group(1) +
                    ", second part is " + m.group(2) + ".");
        } else {
            System.out.println(s + " does not match.");
        }
    }

    public static void main(String[] args) {
        checkString("123-4567");  // 匹配
        checkString("s-tar");    // 字母序列,不匹配
        checkString("123-");    // "-"右側(cè)的數(shù)字串為空,不匹配
        checkString("-4567");    // "-"左側(cè)的數(shù)字串為空,不匹配
        checkString("123-4567-890");    // 存在兩個(gè)"-",不匹配
    }

運(yùn)行結(jié)果:

123-4567 matches; first part is 123, second part is 4567.
s-tar does not match.
123- does not match.
-4567 does not match.
123-4567-890 does not match.

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot整合Swagger2的步驟詳解

    SpringBoot整合Swagger2的步驟詳解

    這篇文章主要介紹了SpringBoot整合Swagger2的步驟詳解,幫助大家更好的理解和學(xué)習(xí)使用SpringBoot框架,感興趣的朋友可以了解下
    2021-04-04
  • java基礎(chǔ)之反射和泛型以及注解

    java基礎(chǔ)之反射和泛型以及注解

    這篇文章主要介紹了 java基礎(chǔ)之反射和泛型以及注解的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • 如何讀取properties或yml文件數(shù)據(jù)并匹配

    如何讀取properties或yml文件數(shù)據(jù)并匹配

    這篇文章主要介紹了如何讀取properties或yml文件數(shù)據(jù)并匹配方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • spring boot 使用Aop通知打印控制器請(qǐng)求報(bào)文和返回報(bào)文問題

    spring boot 使用Aop通知打印控制器請(qǐng)求報(bào)文和返回報(bào)文問題

    這篇文章主要介紹了spring-boot 使用Aop通知打印控制器請(qǐng)求報(bào)文和返回報(bào)文,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2018-04-04
  • Java線程中的用戶態(tài)和內(nèi)核態(tài)解讀

    Java線程中的用戶態(tài)和內(nèi)核態(tài)解讀

    這篇文章主要介紹了Java線程中的用戶態(tài)和內(nèi)核態(tài)解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • java POI 如何實(shí)現(xiàn)Excel單元格內(nèi)容換行

    java POI 如何實(shí)現(xiàn)Excel單元格內(nèi)容換行

    這篇文章主要介紹了java POI 如何實(shí)現(xiàn)Excel單元格內(nèi)容換行的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • 詳解Java遞歸實(shí)現(xiàn)樹形結(jié)構(gòu)的兩種方式

    詳解Java遞歸實(shí)現(xiàn)樹形結(jié)構(gòu)的兩種方式

    在開發(fā)的過程中,很多業(yè)務(wù)場(chǎng)景需要一個(gè)樹形結(jié)構(gòu)的結(jié)果集進(jìn)行前端展示,也可以理解為是一個(gè)無(wú)限父子結(jié)構(gòu),常見的有報(bào)表指標(biāo)結(jié)構(gòu)、菜單結(jié)構(gòu)等,這篇文章主要介紹了Java遞歸實(shí)現(xiàn)樹形結(jié)構(gòu)的兩種方式,需要的朋友可以參考下
    2022-10-10
  • SptingBoot過濾器Filter的使用詳解

    SptingBoot過濾器Filter的使用詳解

    這篇文章主要介紹了SptingBoot過濾器Filter的使用詳解,Filter屬于Servlet規(guī)范,并不是Spring獨(dú)有的,Filter主要用于攔截請(qǐng)求,做一些業(yè)務(wù)邏輯操作,然后可以決定請(qǐng)求是否可以繼續(xù)往下分發(fā),落到其他的Filter或者對(duì)應(yīng)的Servlet,需要的朋友可以參考下
    2023-09-09
  • Java多線程同步器代碼詳解

    Java多線程同步器代碼詳解

    這篇文章主要介紹了Java多線程同步器代碼詳解,文章分別介紹了是CountDownLatch,Semaphore,Barrier和Exchanger以及其相關(guān)代碼示例,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • Java 無(wú)符號(hào)右移與右移運(yùn)算符的使用介紹

    Java 無(wú)符號(hào)右移與右移運(yùn)算符的使用介紹

    這篇文章主要介紹了Java 無(wú)符號(hào)右移與右移運(yùn)算符的使用介紹,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06

最新評(píng)論

淮安市| 楚雄市| 仁布县| 乐业县| 长垣县| 那曲县| 萝北县| 绵阳市| 三穗县| 淮南市| 镇巴县| 孟村| 长治市| 青河县| 定襄县| 高碑店市| 北碚区| 永昌县| 扎囊县| 娄底市| 苍山县| 宁国市| 雷山县| 化德县| 牟定县| 南平市| 麻阳| 凤山县| 高安市| 嘉祥县| 迁安市| 大渡口区| 腾冲县| 紫金县| 嘉义县| 汶川县| 色达县| 遂溪县| 五常市| 海宁市| 罗源县|