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

淺談String.split()遇到空字符串的幾種情況

 更新時間:2020年10月20日 08:38:48   作者:杜.  
這篇文章主要介紹了淺談String.split()遇到空字符串的幾種情況,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

Java中的我們可以利用split把字符串按照指定的分割符進行分割,然后返回字符串?dāng)?shù)組

split 方法

該方法的作用是:將一個字符串分割為子字符串,然后將結(jié)果作為字符串?dāng)?shù)組返回。

stringObj.split([separator,[limit]])

stringObj

必選項。要被分解的 String 對象或文字,該對象不會被split方法修改。

separator

可選項。字符串或正則表達式對象,它標(biāo)識了分隔字符串時使用的是一個還是多個字符。如果忽略該選項,返回包含整個字符串的單一元素數(shù)組。

limit

參數(shù)控制模式應(yīng)用的次數(shù),因此影響所得數(shù)組的長度。如果該限制 n 大于 0,則模式將被最多應(yīng)用 n - 1 次,數(shù)組的長度將不會大于 n,而且數(shù)組的最后一項將包含所有超出最后匹配的定界符的輸入。

如果 n 為非正,那么模式將被應(yīng)用盡可能多的次數(shù),而且數(shù)組可以是任何長度。如果 n 為 0,那么模式將被應(yīng)用盡可能多的次數(shù),數(shù)組可以是任何長度,并且結(jié)尾空字符串將被丟棄。

會遇到以下幾種情況:

1.空字符串不被解析

public class test {
 public static void main(String[] args) {
 String str = "1,2,3,4,,,";
 String[] arr = str.split(",");
 for (String string : arr) {
 System.out.println("str"+string);
 }
 System.out.println(arr.length);
 }
}

結(jié)果1:

2.最后一個分隔符被分的字符串不為空時,其余空字符串可被解析。

public class test {
 public static void main(String[] args) {
 String str = "1,2,3,4,,,5";
 String[] arr = str.split(",");
 for (String string : arr) {
 System.out.println("str"+string);
 }
 System.out.println(arr.length);
 }
}

結(jié)果2:

但是在實際開發(fā)的時候不能保證最后一個分隔符被分的字符串為不空,所以在用split()這個方法后再取被分隔的字符串?dāng)?shù)組的時候有時候就出現(xiàn)數(shù)據(jù)越界的問題(最后一個分隔符被分的字符串為空)

想到了一個方法是split([separator,[limit]]) ,后面把limit賦值成比該字符串被分隔成字符數(shù)組后數(shù)組的長度大很多的值,這能保證所有為空的都能被解析,這正應(yīng)了api里的解釋:

3.如果該限制 n 大于 0,則模式將被最多應(yīng)用 n - 1 次(此時n為1000)

public class test {
 public static void main(String[] args) {
 String str = "1,2,3,4,,,";
 String[] s = str.split(",",1000);
 for (String string : s) {
 System.out.println("str"+string);
 }
 System.out.println(s.length);
 }
}

結(jié)果3:

4.如果把limit設(shè)置為非正,也能全部解析如:

public class test {
 public static void main(String[] args) {
 String str = "1,2,3,4,,,";
 String[] s = str.split(",",-1);
 for (String string : s) {
 System.out.println("str"+string);
 }
 System.out.println(s.length);
 }
}

結(jié)果4:

當(dāng)String str = "1,2,3,4,,,5";時分別與上述結(jié)果3,4一致。

1.當(dāng)參數(shù)為整數(shù)的時候,只需要截取前幾個,需要幾個截取幾個,這個不用多說。

Java代碼

String line = "aa,bb,cc,dd,,,," ;

System.out.println(line.split( "," , 6 ).length);

輸出結(jié)果為 6 ,limit參數(shù)指定幾個,輸出幾個,最多為 8 個

2.當(dāng)參數(shù)為零的時候,和split()一樣,截圖盡可能多的字符串(其實不是最多的)。

Java代碼

String line = "aa,bb,cc,dd,,,," ;

System.out.println(line.split( "," , 0 ).length);

輸出結(jié)果為 4

3.當(dāng)參數(shù)為負的時候,即使后面有空的串,也會輸出到最大

Java代碼

String line = "aa,bb,cc,dd,,,," ;

System.out.println(line.split( "," ,- 1 ).length);

輸出結(jié)果為 8

注意:

1、如果用“.”作為分隔的話,必須是如下寫法,String.split("\\."),這樣才能正確的分隔開,不能用String.split(".");

2、如果用“|”作為分隔的話,必須是如下寫法,String.split("\\|"),這樣才能正確的分隔開,不能用String.split("|");

以上這篇淺談String.split()遇到空字符串的幾種情況就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java?Optional用法面試題精講

    Java?Optional用法面試題精講

    這篇文章主要為大家介紹了Java?Optional用法面試題精講,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • SpringBoot整合JPA數(shù)據(jù)源方法及配置解析

    SpringBoot整合JPA數(shù)據(jù)源方法及配置解析

    這篇文章主要介紹了SpringBoot整合JPA數(shù)據(jù)源方法及配置解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-08-08
  • 使用 Apache POI 在 Java 中寫入 Excel 文件的方法

    使用 Apache POI 在 Java 中寫入 Excel

    這篇文章詳細介紹了如何使用ApachePOI在Java中編寫Excel文件的技巧,包括創(chuàng)建工作簿、工作表、行和單元格,以及如何處理不同版本的Excel文件,通過詳細的步驟和代碼示例,讀者可以快速掌握ApachePOI的基本使用方法,感興趣的朋友一起看看吧
    2025-02-02
  • springboot+hutool批量生成二維碼壓縮導(dǎo)出功能

    springboot+hutool批量生成二維碼壓縮導(dǎo)出功能

    這篇文章主要介紹了springboot+hutool批量生成二維碼壓縮導(dǎo)出功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-10-10
  • 詳解Java設(shè)計模式之抽象工廠模式

    詳解Java設(shè)計模式之抽象工廠模式

    設(shè)計模式是軟件設(shè)計中的一種常見方法,通過定義一系列通用的解決方案,來解決常見的軟件設(shè)計問題,其中,抽象工廠模式是一種非常常見的設(shè)計模式,文中有詳細的代碼示例供大家參考,感興趣的同學(xué)可以借鑒閱讀
    2023-05-05
  • java中刪除 數(shù)組中的指定元素方法

    java中刪除 數(shù)組中的指定元素方法

    下面小編就為大家?guī)硪黄猨ava中刪除 數(shù)組中的指定元素方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • springboot 自定義404、500錯誤提示頁面的實現(xiàn)

    springboot 自定義404、500錯誤提示頁面的實現(xiàn)

    springboot 默認已經(jīng)提供了一套處理異常的機制。在 springboot 中提供了一個名為 BasicErrorController 的類來處理 /error 請求,然后跳轉(zhuǎn)到默認顯示異常的頁面來展示異常信息,本文就詳細的介紹一下,感興趣的可以了解一下
    2021-11-11
  • Spring Boot整合消息隊列RabbitMQ的實現(xiàn)示例

    Spring Boot整合消息隊列RabbitMQ的實現(xiàn)示例

    本文主要介紹了Spring Boot整合消息隊列RabbitMQ的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-03-03
  • mybatis-plus數(shù)據(jù)權(quán)限實現(xiàn)代碼

    mybatis-plus數(shù)據(jù)權(quán)限實現(xiàn)代碼

    這篇文章主要介紹了mybatis-plus數(shù)據(jù)權(quán)限實現(xiàn),結(jié)合了mybatis-plus的插件方式,做出了自己的注解方式的數(shù)據(jù)權(quán)限,雖然可能存在一部分的局限性,但很好的解決了我們自己去解析SQL的功能,需要的朋友可以參考下
    2023-06-06
  • 淺談對象與Map相互轉(zhuǎn)化

    淺談對象與Map相互轉(zhuǎn)化

    這篇文章主要介紹了利用BeanMap進行對象與Map的相互轉(zhuǎn)換,在文中列舉了完整代碼,需要的朋友可以參考下。
    2017-09-09

最新評論

津南区| 靖江市| 大竹县| 玛纳斯县| 南丰县| 博白县| 都江堰市| 中江县| 赤壁市| 张家界市| 天门市| 张家港市| 方山县| 吴旗县| 龙州县| 晋江市| 饶河县| 扎兰屯市| 开远市| 武义县| 巴里| 米林县| 乡城县| 无为县| 礼泉县| 诸暨市| 会东县| 贡山| 永兴县| 海林市| 湖南省| 忻州市| 鲁山县| 安西县| 静乐县| 巨野县| 洪雅县| 玛曲县| 孟连| 平谷区| 海口市|