一個或者多個空格分割字符串


JAVA 一個或多個空格分割字符串

split方法支持正則表達式:

String str = "a  b     c  d e f      g"

習慣用:String [] arr2 = str.split(" ");
多個空格會分割出許多空字符串(即“”)

正確方式,使用正則:
\s表示匹配任何空白字符,+表示匹配一次或多次。

String [] arr = str.split("\\s+");

優化:
String [] arr = str.trim().split("\\s+");
for(String ss : arr){
    System.out.println(ss);
}

特別注意:
String str = "    a  b     c  d e f      g c    ";
以上兩種方式,
如果首尾巴有空格那么數組第一個元素是空字符串(是“”,不是“ ”),
但是尾部沒有空字符串,
所以最好提前trim()去掉首尾所有空格。
 1 String str = "    a  b     c  d e f      g c    ";
 2          String [] arr = str.split("\\s+");
 3          System.out.println(Arrays.asList(arr));
 4 
 5          for(String ss : arr){
 6              System.out.println(ss+ss.length());
 7          }
 8          System.out.println("-------------------");
 9          String [] arr2 = str.split(" ");
10          System.out.println(Arrays.asList(arr2));
11          for(String ss : arr2){
12              System.out.println(ss+ss.length());
13          }
14 
15 輸出:
16 [, a, b, c, d, e, f, g, c]
17 0
18 a1
19 b1
20 c1
21 d1
22 e1
23 f1
24 g1
25 c1
26 -------------------
27 [, , , , a, , b, , , , , c, , d, e, f, , , , , , g, c]
28 0
29 0
30 0
31 0
32 a1
33 0
34 b1
35 0
36 0
37 0
38 0
39 c1
40 0
41 d1
42 e1
43 f1
44 0
45 0
46 0
47 0
48 0
49 g1
50 c1
View Code

補充:數組轉換為列表輸出從第二個元素開始第一個字符是空格

System.out.println(Arrays.asList(new String[]{"a","b","c","d"}));

輸出:
[a, b, c, d]

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM