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

String split方法實(shí)現(xiàn)過(guò)程圖解

 更新時(shí)間:2019年11月18日 10:51:54   作者:張?jiān)?jīng)  
這篇文章主要介紹了String split方法實(shí)現(xiàn)過(guò)程圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

這篇文章主要介紹了String split方法實(shí)現(xiàn)過(guò)程圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

String的split方法相信大家都不陌生,或多或少都用過(guò)它將字符串轉(zhuǎn)成一個(gè)數(shù)組,但是就是這樣一個(gè)簡(jiǎn)單的方法,里面也有一個(gè)不得不注意、不深不淺的小坑。

本地測(cè)試代碼如下圖所示:

圖1

大家會(huì)發(fā)現(xiàn)split1跟split3的長(zhǎng)度符合我們的預(yù)期,但是split2應(yīng)該是長(zhǎng)度為5,但實(shí)際長(zhǎng)度卻仍然為4。相信大家在遇到這種情況的時(shí)候,

應(yīng)該能立馬猜到String的這個(gè)split方法應(yīng)該不只是進(jìn)行一個(gè)匹配拆分的操作,還做了其他的邏輯處理,比如這里應(yīng)該做了去除最后一個(gè)空元素

的操作。既然有了這樣的猜想,那就繼續(xù)看看源碼尋根溯源一下吧。

圖2

該方法調(diào)用了一個(gè)重載的方法,第一個(gè)參數(shù)沒(méi)變,第二個(gè)參數(shù)limit傳了0,繼續(xù)追溯

圖3

卻發(fā)現(xiàn)有點(diǎn)頭大,比較麻煩,完全看不下去了。

換個(gè)思路,debug一下,看看這最后一個(gè)空的元素是在哪里被過(guò)濾掉的,一試果然發(fā)現(xiàn)了案發(fā)地。

圖4

此處的list里存放的是全部的5個(gè)元素,而在下面的while循環(huán)里,可以看到是從尾部往前遍歷看哪個(gè)元素長(zhǎng)度為0,

有一個(gè)為0的就減一個(gè)長(zhǎng)度,直到碰到第一個(gè)不為空的元素為止。進(jìn)行完這個(gè)while循環(huán)之后,就截取前面的元素,

轉(zhuǎn)成數(shù)組返回。

通過(guò)以上的簡(jiǎn)要分析,即可知道,對(duì)于String的split方法,如果字符串末尾剛好是匹配字符,則會(huì)自動(dòng)將最后一個(gè)

空元素去掉,而字符串首部有空元素則不受影響。

多說(shuō)兩句,其實(shí)對(duì)于limit參數(shù),測(cè)試幾次便可發(fā)現(xiàn),此參數(shù)是限制返回的數(shù)據(jù)最大長(zhǎng)度的。測(cè)試代碼如下:

圖5

可知傳了limit值,就不會(huì)自動(dòng)去掉末尾的空元素。具體原因可見(jiàn)圖4源碼,如果limit不為0,則不會(huì)走if中的while循環(huán),也就不會(huì)出現(xiàn)上文中說(shuō)的情況了。

對(duì)于這種坑,沒(méi)什么避免的好辦法,一是擴(kuò)大自己的知識(shí)面,二是多積累總結(jié)。加油吧!

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java的非對(duì)稱加密(RSA、數(shù)字簽名、數(shù)字證書)詳解

    Java的非對(duì)稱加密(RSA、數(shù)字簽名、數(shù)字證書)詳解

    這篇文章主要介紹了Java的非對(duì)稱加密(RSA、數(shù)字簽名、數(shù)字證書)詳解,非對(duì)稱加密:加密、解密使用不同的兩把密鑰,這兩把密鑰成對(duì),一般通信開(kāi)始時(shí)通過(guò)非對(duì)稱加密將對(duì)稱加密的密鑰發(fā)送給另一方,然后雙方通過(guò)對(duì)稱加密來(lái)進(jìn)行溝通,需要的朋友可以參考下
    2024-01-01
  • 學(xué)習(xí)Java之IO流的基礎(chǔ)概念詳解

    學(xué)習(xí)Java之IO流的基礎(chǔ)概念詳解

    這篇文章主要給大家介紹了Java中的IO流,我們首先要搞清楚一件事,就是為什么需要IO流這個(gè)東西,但在正式學(xué)習(xí)IO流的使用之前,小編有必要帶大家先了解一下IO流的基本概念,需要的朋友可以參考下
    2023-09-09
  • Java基本數(shù)據(jù)類型包裝類原理解析

    Java基本數(shù)據(jù)類型包裝類原理解析

    這篇文章主要介紹了Java基本數(shù)據(jù)類型包裝類原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • SpringBoot的java -jar命令啟動(dòng)原理解讀

    SpringBoot的java -jar命令啟動(dòng)原理解讀

    這篇文章主要介紹了SpringBoot的java -jar命令啟動(dòng)原理,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • 使用自定義Json注解實(shí)現(xiàn)輸出日志字段脫敏

    使用自定義Json注解實(shí)現(xiàn)輸出日志字段脫敏

    這篇文章主要介紹了使用自定義Json注解實(shí)現(xiàn)輸出日志字段脫敏,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Spring MVC的參數(shù)綁定和返回值問(wèn)題

    Spring MVC的參數(shù)綁定和返回值問(wèn)題

    這篇文章主要介紹了Spring MVC的參數(shù)綁定和返回值問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • spring boot補(bǔ)習(xí)系列之幾種scope詳解

    spring boot補(bǔ)習(xí)系列之幾種scope詳解

    這篇文章主要給大家介紹了關(guān)于spring boot補(bǔ)習(xí)系列之幾種scope的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用spring boot具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-07-07
  • java中flatMap用法完整示例

    java中flatMap用法完整示例

    flatMap是java8的Stream流的一個(gè)方法,下面這篇文章主要給大家介紹了關(guān)于java中flatMap用法的相關(guān)資料,文中通過(guò)示例代碼和圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • JavaSE基礎(chǔ)之反射機(jī)制(反射Class)詳解

    JavaSE基礎(chǔ)之反射機(jī)制(反射Class)詳解

    反射機(jī)制有什么用?通過(guò)java語(yǔ)言中的反射機(jī)制可以操作字節(jié)碼文件,可以讀和修改字節(jié)碼文件。所以本文將為大家講講反射機(jī)制的使用,需要的可以參考一下
    2022-09-09
  • java實(shí)現(xiàn)單詞搜索迷宮游戲

    java實(shí)現(xiàn)單詞搜索迷宮游戲

    這篇文章主要介紹了java實(shí)現(xiàn)單詞搜索迷宮游戲,實(shí)例分析了迷宮游戲的實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2015-05-05

最新評(píng)論

灵石县| 五河县| 田林县| 嘉荫县| 海原县| 衡东县| 孟连| 陇南市| 全州县| 安图县| 聂荣县| 汕头市| 巧家县| 昌平区| 苏尼特左旗| 肇州县| 柘城县| 鹤壁市| 湘潭市| 满城县| 星座| 安平县| 敖汉旗| 历史| 临泽县| 那曲县| 吉首市| 西乌珠穆沁旗| 新和县| 普宁市| 长子县| 临夏县| 全南县| 海原县| 齐齐哈尔市| 石狮市| 咸阳市| 滦平县| 广丰县| 常宁市| 开江县|