国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java 切割字符串的幾種方式集合

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

2021-12-18 14:28julystroy Java教程

這篇文章主要介紹了Java 切割字符串的幾種方式集合,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

Java 切割字符串的幾種方式

?
1
2
//以data  為案例參數。
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";

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

1、StringTokenizer切割

是java.util中的一個類,包含的api有:

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

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

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

最方便,運用最多的,不解釋。

?
1
2
3
4
5
6
7
8
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、調用String自己的api subString()

運用2的代碼塊

?
1
2
3
4
5
6
7
8
9
10
11
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);
                }
            }

輸出結果:

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)獲取位置。

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

java優雅的切割字符串

切割字符串

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

使用方法

?
1
public String[] split(String regex)

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

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

split還有另一種用法

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

regex指的是正則表達式分隔符,limit值的是分隔的份數,如:

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

在某些場景下,我們可能想要在結果中保留分隔符,這也是可以做到的,設置分隔符與分割后的左側結果相連

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

設置分隔符與分割后右側的結果相連:

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

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//\d代表數字,+代表出現一次或多次。所以(\\d+)-(\\d+)匹配用"-"相連的兩個數字串
    // Pattern 對象是正則表達式的編譯表示
    private static Pattern twopart = Pattern.compile("(\\d+)-(\\d+)");
    public static void checkString(String s)
    {
        // Matcher對象對輸入字符串進行解釋和匹配操作
        Matcher m = twopart.matcher(s);
        if (m.matches()) {
            //m.group(1) 和 m.group(2) 存儲分割后的子串
            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-");    // "-"右側的數字串為空,不匹配
        checkString("-4567");    // "-"左側的數字串為空,不匹配
        checkString("123-4567-890");    // 存在兩個"-",不匹配
    }

運行結果:

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.

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/julystroy/article/details/86475381

延伸 · 閱讀

精彩推薦
  • Java教程Java BufferWriter寫文件寫不進去或缺失數據的解決

    Java BufferWriter寫文件寫不進去或缺失數據的解決

    這篇文章主要介紹了Java BufferWriter寫文件寫不進去或缺失數據的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望...

    spcoder14552021-10-18
  • Java教程xml與Java對象的轉換詳解

    xml與Java對象的轉換詳解

    這篇文章主要介紹了xml與Java對象的轉換詳解的相關資料,需要的朋友可以參考下...

    Java教程網2942020-09-17
  • Java教程20個非常實用的Java程序代碼片段

    20個非常實用的Java程序代碼片段

    這篇文章主要為大家分享了20個非常實用的Java程序片段,對java開發項目有所幫助,感興趣的小伙伴們可以參考一下 ...

    lijiao5352020-04-06
  • Java教程小米推送Java代碼

    小米推送Java代碼

    今天小編就為大家分享一篇關于小米推送Java代碼,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧...

    富貴穩中求8032021-07-12
  • Java教程Java使用SAX解析xml的示例

    Java使用SAX解析xml的示例

    這篇文章主要介紹了Java使用SAX解析xml的示例,幫助大家更好的理解和學習使用Java,感興趣的朋友可以了解下...

    大行者10067412021-08-30
  • Java教程Java8中Stream使用的一個注意事項

    Java8中Stream使用的一個注意事項

    最近在工作中發現了對于集合操作轉換的神器,java8新特性 stream,但在使用中遇到了一個非常重要的注意點,所以這篇文章主要給大家介紹了關于Java8中S...

    阿杜7482021-02-04
  • Java教程升級IDEA后Lombok不能使用的解決方法

    升級IDEA后Lombok不能使用的解決方法

    最近看到提示IDEA提示升級,尋思已經有好久沒有升過級了。升級完畢重啟之后,突然發現好多錯誤,本文就來介紹一下如何解決,感興趣的可以了解一下...

    程序猿DD9332021-10-08
  • Java教程Java實現搶紅包功能

    Java實現搶紅包功能

    這篇文章主要為大家詳細介紹了Java實現搶紅包功能,采用多線程模擬多人同時搶紅包,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙...

    littleschemer13532021-05-16
主站蜘蛛池模板: 国产露脸国语对白在线 | 日韩成人av电影 | 国产一区二区三区免费观看 | 国产精品福利视频 | 久久久www免费人成精品 | 亚洲精品久久久久久动漫 | 国产欧美一二三区在线粉嫩 | 成人欧美一区二区三区白人 | 免费一级在线视频 | 天天舔夜夜操 | 一区二区三区高清在线 | 亚洲在线视频 | 国产在线观看免费 | 精品一区二区三区免费毛片爱 | 美女毛片 | 国产欧美精品 | 国产黄色免费网站 | 日韩精品一区二区三区在线观看 | 免费成人高清在线视频 | 国产精品尤物在线观看 | 婷婷五月色综合香五月 | 久久久久久久国产精品 | 毛片免费电影 | 国产精品毛片在线 | 亚洲午夜av久久乱码 | 亚洲国产精品一区二区久久 | se在线播放 | 香蕉国产 | 欧美一区二区久久 | 日本中文字幕在线观看 | 成人午夜精品久久久久久久网站 | 亚洲免费视频网站 | 亚洲视频在线观看免费 | 欧美一区二区三区 | 久久噜噜噜精品国产亚洲综合 | 中文字幕亚洲综合久久久软件 | 亚洲欧美日韩精品久久亚洲区 | 国产美女久久 | 亚洲成人免费在线播放 | 欧美精品 | 都市激情综合 |