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

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