最近使用split做字符串分割的功能,一直以為它就是可以將“01```1979-09-21``````”通過語句
.split("```");
?就能四個長度的數組。結果工程上報問題,看了日志發現MD這個家伙根本沒有完成我的愿望。它只分隔了有數據的兩個長度的數組出來。
?
上網查看才知道,要想將空數據也能正常分隔,需要調用它的重載方法
.split("```", -1);
?這樣就能分隔四個長度的數組了。
?
JDK原文:
split
public String [] split ( String ?regex, int?limit)
此方法返回的數組包含此字符串的每個子字符串,這些子字符串由另一個匹配給定的表達式的子字符串終止或由字符串結束來終止。數組中的子字符串按它們在此字符串中的順序排列。如果表達式不匹配輸入的任何部分,則結果數組只具有一個元素,即此字符串。
limit 參數控制模式應用的次數,因此影響結果數組的長度。如果該限制 n 大于 0,則模式將被最多應用 n ?-?1 次,數組的長度將不會大于 n ,而且數組的最后項將包含超出最后匹配的定界符的所有輸入。如果 n 為非正,則模式將被應用盡可能多的次數,而且數組可以是任意長度。如果 n 為零,則模式將被應用盡可能多的次數,數組可有任何長度,并且結尾空字符串將被丟棄。
例如,字符串 "boo:and:foo" 使用這些參數可生成下列結果:
RegexLimit結果
: 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" }
這種形式的方法調用 str. split( regex , ? n ) 產生與以下表達式完全相同的結果:
Pattern
.compile
( regex ) .split
( str , ? n )
?
regex
- 定界正則表達式
limit
- 結果閾值,如上所述
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
