我正在研究正则表达式。我试过
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。
我不太明白这种正则表达式在这种情况下是如何起作用的。任何人都可以启发我吗?
答案 0 :(得分:5)
您希望拆分\\s
(小写s)而不是大写s。
现在您的方式就是说 非 - 空白字符是分隔符,只留下空格作为“数据”。
此外,允许多个连续空格作为分隔符应该是\\s+
。