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 - 假如正則表達式的語法有效