我正在尝试将一段文本拆分为带有分隔符(句号、分号和问号)的句子。我可以想到在 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));
这行得通,但我想知道是否有更有效的方法来做到这一点?谢谢
最佳答案
在一个正则表达式中你可以这样做。
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());
}
关于java - 将一段话拆分成句子,分隔符 : period, 分号和问号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25950876/