拆分空格分隔的字符串

时间:2014-01-10 01:26:05

标签: java regex string split

String numbers = "5 1 5 1";

所以,是吗:

String [] splitNumbers = numbers.split();

或:

String [] splitNumbers = numbers.split("\s+");

寻找:["5","1","5","1"]

知道为什么.split行都不起作用?我试着阅读关于正则表达式的答案,但我没有得到任何地方。

2 个答案:

答案 0 :(得分:7)

在您的上述情况split("\s+");中,您需要使用另一个反斜杠转义\,即:

split("\\s+");

split(" ");也可以做到

注意 split("\\s+");分割任意长度的空格,包括换行符(\n),标签\tsplit(" "); 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将被拆分为多个空格字符(空格,制表符等)。