String numbers = "5 1 5 1";
那麼,是不是:分裂空格分隔字符串
String [] splitNumbers = numbers.split();
或:
String [] splitNumbers = numbers.split("\s+");
尋找:["5","1","5","1"]
任何想法,爲什麼既不是.split
線將工作?我試着閱讀有關正則表達式的答案,但我沒有得到任何地方。
String numbers = "5 1 5 1";
那麼,是不是:分裂空格分隔字符串
String [] splitNumbers = numbers.split();
或:
String [] splitNumbers = numbers.split("\s+");
尋找:["5","1","5","1"]
任何想法,爲什麼既不是.split
線將工作?我試着閱讀有關正則表達式的答案,但我沒有得到任何地方。
由於\
表示轉義字符,因此您必須使用額外的\
來逃避正則表達式:
public static void main(String[] args) {
String numbers = "5 1 5 1";
String[] tokens = numbers.split("\\s+");
for(String token:tokens){
System.out.println(token);
}
}
所以額外的\
逃脫下一個\
,然後被視爲文字\
。
當使用\\s+
時,字符串將被拆分成多個空白字符(空格,製表符等)。
在你上面的情況split("\s+");
,你需要逃避\與另一個反斜槓,這就是:
split("\\s+");
或者
split(" ");
也能做到這一點
注意是split("\\s+");
拆分任意長度包括newli在內的空白ne(\n
),標籤(\t
),而split(" ");
將拆分只有一個空間。使用split("\\s+");
你會得到{"5","1","5","1"}
同時使用split(" ");
例如,當你有一個字符串以兩個空格隔開,比如 「5 1 5 1」,
你會得到{"5","","1","5","1"}
注意''\\ s +「'和''''' –