我正在研究正则表达式。我尝试过
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。
我不太明白这个正则表达式在这种情况下是如何工作的..有人可以启发我吗?
最佳答案
您想要按 \\s
(小写 s)而不是大写 s 进行拆分。
你现在的方式是说非 - 空白字符是分隔符,除了空白之外什么都不留下作为你的“数据”。
此外,它可能应该是 \\s+
以允许多个连续空格作为分隔符。
关于Java通过\\S分割,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25111268/