用Java拆分字串示例和技巧 -Dreamix

發表於2021-05-13

字串類提供了一個拆分方法,該方法適用於某些情況。該方法只是通過使用作為引數傳遞的定界符來分割字串。引數可以是正規表示式或簡單字元。方法簽名可以是:

String[]    split​(String regex)

還有一個選項可以新增一個可以為負,正或等於0的limit限制。

String[]    split​(String regex, int limit)

  • 如果limit限制具有正值,則將在最大限制處分割字串-1次,並且在第三次分割之後剩下的內容將附加在最後一個字串結果陣列元素的末尾。
  • 如果limit限制為負值,則將在不超過限制的情況下儘可能多地拆分字串,但是會在結果中新增尾隨空格(如果有的話)。實際的負值將不被考慮。
  • 如果limit限制等於0,則將在不超過限制的情況下拆分字串。

 

1.以簡單字元分割:

String wordsForSplitting = "test-splitting-string";
String[] arrayOfWords = wordsForSplitting.split("-"); // would have the same result if wordsForSplitting.split("-", 0) is used
 
System.out.println(arrayOfWords[0]);
System.out.println(arrayOfWords[1]);
System.out.println(arrayOfWords[2]);
輸出:
test
splitting
string

 2.使用正規表示式拆分:

String sentenceManyDelimiters = "Split sentence when you have : , questions marks ? or email @.";
    String[] arrayOfWords = sentenceManyDelimiters.split("[,?.@:]+");
        
for (String word : arrayOfWords) {
System.out.println(word);
}
輸出:
Split
sentence
when
you
have
questions
marks
or
email

3.以正數limit限制分割:

String wordsForSplitting = "test-splitting-string--";
String[] arrayOfWords = wordsForSplitting.split("-", 2);
 
for (String word : arrayOfWords) {
    System.out.println(word);
    }
輸出:
test
splitting-string--

 

4.以負數限制分割:

String wordsForSplitting = "test-splitting-string--";
String[] arrayOfWords = wordsForSplitting.split("-", -15);
for (String word : arrayOfWords) {
    System.out.println(word);
    }
輸出:

test
splitting
string
""
""
""

 

5.使用Stream API拆分

String sentanceCommas = "Split sentence when you have, commas, and more ..";    
List<String> stringList = Stream.of(sentanceCommas.split(","))
.map (elem -> new String(elem))
    .collect(Collectors.toList());
 
for (String obj : stringList) {
System.out.println(obj);
}
輸出:
Split sentence when you have
commas
and more...

 

 

相關文章