程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java的split辦法應用詳解

Java的split辦法應用詳解

編輯:關於JAVA

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved