将一个段落分成句子,分隔符:句点,分号和问号

时间:2014-09-20 16:25:18

标签: java split sentence

我试图将一段文本分成带分隔符的句子(句号,分号和问号)。我可以考虑在java中使用split()方法并将结果数组保存到ArrayList:

String[] sentencesByPeriod = passage.split("\\.");
String[] sentencesBySemicolon = passage.split("\\;");
String[] sentencesByQuestionM = passage.split("\\?");

List<String> allSentences = new ArrayList<String>();
allSentences.addAll(Arrays.asList(sentencesByPeriod));
allSentences.addAll(Arrays.asList(sentencesBySemicolon));
allSentences.addAll(Arrays.asList(sentencesByQuestionM));

这有效,但我想知道是否有更有效的方法来做到这一点?感谢

1 个答案:

答案 0 :(得分:3)

在一个正则表达式中你可以这样做。

String s[] = passage.split("[.;?]");
List<String> allSentences = new ArrayList<String>();
allSenteces.addAll(Arrays.asList(s));

或使用StringTokenizer

 StringTokenizer tokenizer = new StringTokenizer(passage, ".;?");
 List<String> s = new ArrayList<String>();
 while(tokenizer.hasMoreTokens()){
  s.add(tokenizer.nextToken());
 }