Java由\\ S分割

时间:2014-08-04 03:10:15

标签: java regex

我正在研究正则表达式。我试过

public static void main(String[] agrs) {

    String s = "I am preparing ocp";
    String[] tokens = s.split("\\S");
    System.out.println(tokens.length);
    for (String x : tokens) {
        System.out.println(x);
    }
}

,显示的结果是13个空格。

但是,当我在字符串后面添加一个空白时,

public static void main(String[] agrs) {

    String s = "I am preparing ocp ";
    String[] tokens = s.split("\\S");
    System.out.println(tokens.length);
    for (String x : tokens) {
        System.out.println(x);
    }
}

结果将是16。

我不太明白这种正则表达式在这种情况下是如何起作用的。任何人都可以启发我吗?

1 个答案:

答案 0 :(得分:5)

您希望拆分\\s(小写s)而不是大写s。

现在您的方式就是说 - 空白字符是分隔符,只留下空格作为“数据”。

此外,允许多个连续空格作为分隔符应该是\\s+