Java的split辦法應用詳解。本站提示廣大學習愛好者:(Java的split辦法應用詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是Java的split辦法應用詳解正文
信任年夜家都常常應用String 的split辦法,然則年夜家有無碰到上面的這類情形:
年夜家想一想上面的代碼履行成果是甚麼
public static void main(String[] args) { // TODO Auto-generated method stub String str1 = "a,b,c,,,a"; String str2 = "a,b,c,,,"; String str3 = "a,b,c, , ,"; String[] s1 = str1.split(","); String[] s2 = str2.split(","); String[] s3 = str3.split(","); System.out.println("str1長度:"+s1.length); System.out.println("str2長度:"+s2.length); System.out.println("str3長度:"+s3.length); }
履行成果:
為何會湧現如許的成果呢,查找API發明懂得決辦法
處理辦法:
經由過程檢查API我們發明我們經常使用的split辦法默許傳遞的是0,如今處理str2輸入空的處理辦法是傳遞的第二個參數為正數,便可
public static void main(String[] args) { // TODO Auto-generated method stub String str1 = "a,b,c,,,a"; String str2 = "a,b,c,,,"; String str3 = "a,b,c, , ,"; String[] s1 = str1.split(","); String[] s2 = str2.split(",",-1); String[] s3 = str3.split(",",-1); System.out.println("str1長度:"+s1.length); System.out.println("str2長度:"+s2.length); System.out.println("str3長度:"+s3.length); }
經查找API發明在String類中,存在兩個split重載辦法
1.public String[] split(String regex)
依據給定正則表達式的婚配拆分此字符串。
該辦法的感化就像是應用給定的表達式和限制參數 0 來挪用兩參數 split 辦法。是以,所得數組中不包含開頭空字符串。
例如,字符串 "boo:and:foo" 應用這些表達式可生成以下成果:
Regex 成果
: { "boo", "and", "foo" } o { "b", "", ":and:f" }
參數:
regex - 定界正則表達式
前往:
字符串數組,它是依據給定正則表達式的婚配拆分此字符串肯定的
拋出:
PatternSyntaxException - 假如正則表達式的語法有效
2.public String[] split(String regex,int limit)
依據婚配給定的正則表達式來拆分此字符串。
此辦法前往的數組包括此字符串的子字符串,每一個子字符串都由另外一個婚配給定表達式的子字符串終止,或許由此字符串末尾終止。數組中的子字符串按它們在此字符串中湧現的次序分列。假如表達式不婚配輸出的任何部門,那末所得數組只具有一個元素,即此字符串。
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" }
挪用此辦法的 str.split(regex, n) 情勢與以下表達式發生的成果完整雷同:
Pattern.compile(regex).split(str, n)
參數:
regex - 定界正則表達式
limit - 成果阈值,如上所述
前往:
字符串數組,它是依據給定正則表達式的婚配拆分此字符串肯定的
拋出:
PatternSyntaxException - 假如正則表達式的語法有效