解決split無法得到空字串問題
一.問題
在一次分割字串的時候,出現瞭如下問題:
無法分割出空字串,但當末尾位帶了非空字串又能分割了,如下圖:
二.定位分析
1.空字串不被解析
2.最後一個分隔符被分的字串不為空時,其餘空字串可被解析
原始碼分析
該方法的作用是:將一個字串分割為子字串,然後將結果作為字串陣列返回。
regularExpression:必選項。要被分解的 String 物件或文字,該物件不會被split方法修改。
limit:
可選項。字串或正規表示式物件,它標識了分隔字串時使用的是一個還是多個字元。如果忽略該選項,返回包含整個字串的單一元素陣列。
引數控制模式應用的次數,因此影響所得陣列的長度。如果該限制 n 大於 0,則模式將被最多應用 n - 1 次,陣列的長度將不會大於 n,而且陣列的最後一項將包含所有超出最後匹配的定界符的輸入。如果 n 為非正,那麼模式將被應用盡可能多的次數,而且陣列可以是任何長度。如果 n 為 0,那麼模式將被應用盡可能多的次數,陣列可以是任何長度,並且結尾空字串將被丟棄。
PS:當limit=0;和作用相同
當為0時:
當為2時:
當為6時:
當為8時:由於自由五個逗號,最多隻能分割成6個字串,即使你限定至多8個也只能輸出6個
三.解決方案
實際開發的時候不能保證最後一個分隔符被分的字串為不空,所以在用split()這個方法後再取被分隔的字串陣列的時候有時候就出現資料越界的問題(最後一個分隔符被分的字串為空)想到了一個方法是split([separator,[limit]]) ,後面把limit賦值成比該字串被分隔成字元陣列後陣列的長度大很多的值,這能保證所有為空的都能被解析,這正應了api裡的解釋
如果把limit設定為非正,也能全部解析如
四.注意
1、如果用“.”作為分隔的話,必須是如下寫法,String.split("\\."),這樣才能正確的分隔開,不能用String.split(".");
2、如果用“|”作為分隔的話,必須是如下寫法,String.split("\\|"),這樣才能正確的分隔開,不能用String.split("|");
相關文章
- 解決ASM無法啟動問題ASM
- 解決無法使用VI的問題
- 記錄個Java/Groovy的小問題:空字串呼叫split函式返回非空陣列Java字串函式陣列
- 解決Centos無法yum源的問題CentOS
- Parallels Tools 無法安裝問題解決Parallel
- 解決codeblocks無法除錯的問題BloC除錯
- 解決寶塔皮膚無法訪問的問題?
- 解決 raw.githubusercontent.com 無法訪問的問題Github
- 成功解決github無法顯示圖片問題Github
- AD18無法模擬問題的解決
- 使用PorterDuff解決clipPath無法抗鋸齒問題
- Windows無法配置此無線連線這個問題的解決辦法Windows
- 解決 Windows 無法訪問共享Windows
- Linux配置靜態IP解決無法訪問網路問題Linux
- 記一次用油猴無法hook問題解決Hook
- 【PyCharm】解決虛擬環境pip無法使用問題PyCharm
- 解決 Python 指令碼無法生成結果的問題Python指令碼
- goland中npm無法使用的問題及解決方法GoLandNPM
- 解決idea中無法識別主類的問題Idea
- IDEA中Lombok無法生效的問題及解決方法IdeaLombok
- 解決修改element-ui樣式無法生效問題UI
- 解決Kali LinuxVI編輯器無法複製問題Linux
- 解決properties、xml等配置檔案無法找到問題XML
- 解決vscode安裝後無法啟動的問題VSCode
- 問題解決:無法獲得鎖 /var/lib/dpkg/lock
- 解決Linux無法開啟android模擬器問題LinuxAndroid
- 解決Spring Boot無法跳轉jsp頁面問題Spring BootJS
- 記錄一次無法很好解決的問題
- 手動下載 Chrome,解決 puppeteer 無法使用問題Chrome
- Linux Ubuntu 20.04 LTS 解決無法輸入中文 輸入法問題LinuxUbuntu
- [解決問題] Vagrant nginx 站點配置問題(ThinkPHP HTML 無法調跳轉)NginxPHPHTML
- maven打包jar無法打入依賴專案問題解決MavenJAR
- post傳引數,但是後端無法接收問題解決後端
- Oracle 解決like中無法匹配下劃線的問題Oracle
- 怎麼解決SOLIDWORKS文件無法正常開啟的問題!Solid
- SpringBoot 2.0中SpringWebContext 找不到無法使用的問題解決Spring BootWebContext
- VMware DHCP Service服務無法啟動問題的解決
- 解決Visual Studio(2017)軟體無法重新生成問題