Java中關於String的split(String regex, int limit) 方法


今天在對一個String對象進行拆分的時候,總是無法到達預計的結果。呈現數據的時候出現異常,后來debug之后才發現,錯誤出在String spilt上,於是開始好好研究下這東西,開始對api里的split(String regex, int limit)比較感興趣,可是就是不理解當limit為負數時的情況
下面是api里的解釋:


limit 參數控制模式應用的次數,因此影響所得數組的長度。如果該限制 n 大於 0,則模式將被最多應用 n - 1 次,數組的長度將不會大於 n,而且數組的最后一項將包含所有超出最后匹配的定界符的輸入。如果 n 為非正,那么模式將被應用盡可能多的次數,而且數組可以是任何長度。如果 n 為 0,那么模式將被應用盡可能多的次數,數組可以是任何長度,並且結尾空字符串將被丟棄。

例如,字符串 "boo:and:foo" 使用這些參數可生成以下結果:

 

Regex Limit 結果

: 2 { "boo", "and:foo" }
: 5 { "boo", "and", "foo" }
: -2 { "boo", "and", "foo" }
o 5 { "b", "", ":and:f", "", "" }
o -2 { "b", "", ":and:f", "", "" }
o 0 { "b", "", ":and:f" }


對limit為負還是有點不理解,尤其是對 o -2組合,

現在我明白了,{ "b", "", ":and:f", "", "" } 第一個“”是因為兩個o之間的空數據,第二個也是這個原因,最后一個是將"boo:and:foo"中最后空字符串也算進去的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM