我需要把一些句子分成单词。
例如:
Upper sentence.
Lower sentence. And some text.
Run Code Online (Sandbox Code Playgroud)
我这样做是:
String[] words = text.split("(\\s+|[^.]+$)");
Run Code Online (Sandbox Code Playgroud)
但是我得到的输出是:
Upper, sentence.Lower, sentence., And, some, text.
Run Code Online (Sandbox Code Playgroud)
它应该像这样:
Upper, sentence., Lower, sentence., And, some, text.
Run Code Online (Sandbox Code Playgroud)
请注意,我需要保留所有字符(。,-?!等)。
在正则表达式中\W+匹配一个或多个非单词字符。
http://www.vogella.com/tutorials/JavaRegularExpressions/article.html
因此,如果您想获取句子中的单词,可以将其\W+用作分隔符。
String[] words = text.split("\\W+");
Run Code Online (Sandbox Code Playgroud)
这将为您提供以下输出。
Upper
sentence
Lower
sentence
And
some
text
Run Code Online (Sandbox Code Playgroud)
更新:
由于您已经更新了问题,如果要保留所有字符并按空格\s+分隔,请用作分隔符。
String[] words = text.split("\\s+");
Run Code Online (Sandbox Code Playgroud)
我已经检查了以下代码块,并确认它也与新行一起使用。
String text = "Upper sentence.\n" +
"Lower sentence. And some text.";
String[] words = text.split("\\s+");
for (String word : words){
System.out.println(word);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2630 次 |
| 最近记录: |