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

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

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

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

split 方法

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

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

stringObj

必選項(xiàng)。要被分解的 String 對象或文字,該對象不會(huì)被split方法修改。

separator

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

limit

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

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

會(huì)遇到以下幾種情況:

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.最后一個(gè)分隔符被分的字符串不為空時(shí),其余空字符串可被解析。

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:

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

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

3.如果該限制 n 大于 0,則模式將被最多應(yīng)用 n - 1 次(此時(shí)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";時(shí)分別與上述結(jié)果3,4一致。

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

Java代碼

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

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

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

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

Java代碼

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

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

輸出結(jié)果為 4

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

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)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java?Optional用法面試題精講

    Java?Optional用法面試題精講

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

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

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

    使用 Apache POI 在 Java 中寫入 Excel

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新評(píng)論

崇仁县| 合江县| 江城| 金乡县| 黑龙江省| 南皮县| 黄大仙区| 延川县| 咸丰县| 安化县| 临桂县| 沂水县| 富裕县| 夏河县| 枣庄市| 中方县| 温州市| 碌曲县| 武平县| 平顶山市| 观塘区| 长岛县| 巴林左旗| 舞钢市| 延津县| 山丹县| 建宁县| 宁明县| 阜宁县| 泽普县| 海宁市| 丰顺县| 宁晋县| 平远县| 彰化市| 芒康县| 东光县| 保康县| 伊金霍洛旗| 健康| 隆昌县|