String numbers = "5 1 5 1";
所以,是吗:
String [] splitNumbers = numbers.split();
或:
String [] splitNumbers = numbers.split("\s+");
寻找:["5","1","5","1"]
知道为什么.split
行都不起作用?我试着阅读关于正则表达式的答案,但我没有得到任何地方。
答案 0 :(得分:7)
在您的上述情况split("\s+");
中,您需要使用另一个反斜杠转义\,即:
split("\\s+");
或
split(" ");
也可以做到
注意 split("\\s+");
分割任意长度的空格,包括换行符(\n
),标签\t
)split(" ");
1}}将分割仅一个空间。
例如,当您使用两个空格分隔字符串时,请说“5 1 5 1”,
使用split("\\s+");
,您将获得{"5","1","5","1"}
使用split(" ");
时,您将获得{"5","","1","5","1"}
答案 1 :(得分:1)
您必须使用额外的\
来转义正则表达式,因为\
表示转义字符:
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+
时,String将被拆分为多个空格字符(空格,制表符等)。