hello-world how are you?
应该导致
hello
-
world
how
are
you
?
这是我尝试的代码
String str = "Hello-world how are you?";
Arrays.stream(str.split("\\b+")).forEach(System.out::println);
最佳答案
您可以使用此正则表达式进行拆分:
String str = "hello-world how are you?";
Arrays.stream(str.split("\\p{javaWhitespace}+|(?=\\p{P})|(?<=\\p{P})")).forEach(System.err::println);
在这里
\\p{Z}+|(?=\\p{P})|(?<=\\p{P})
在任何unicode空格上分割,或者借助前瞻性断言,断言前一个字符还是下一个字符是标点字符。RegEx Demo
输出:
hello
-
world
how
are
you
?
关于java - Java按空格和标点符号拆分字符串,但结果中仅包含标点符号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43286467/