将字符串拆分为句子

我已经编写了这段代码,用于拆分字符串并将其存储在字符串数组中:-

String[] sSentence = sResult.split("[a-z]\\.\\s+");

但是,我添加了[az],因为我想处理一些缩写问题。但是随后我的结果显示为:

此外,当埃弗里特(Everett)试图指导他们进行基础数学训练时,他们被证明是毫无反应的

我看到丢失了split函数中指定的模式。对我来说,可以省略句号,但是丢失单词的最后一个字母会打乱其含义。

有人可以帮助我吗?此外,有人可以帮助我解决缩写吗?例如,由于我是根据句点分割字符串的,所以我不想丢失缩写。

回答:

解析句子绝非易事,即使对于像英语这样的拉丁语言也是如此。像您在问题中概述的那样幼稚的方法通常会失败,以至于在实践中被证明是无用的。

更好的方法是使用配置了正确的Locale 的BreakIterator。

BreakIterator iterator = BreakIterator.getSentenceInstance(Locale.US);

String source = "This is a test. This is a T.L.A. test. Now with a Dr. in it.";

iterator.setText(source);

int start = iterator.first();

for (int end = iterator.next();

end != BreakIterator.DONE;

start = end, end = iterator.next()) {

System.out.println(source.substring(start,end));

}

产生以下结果:

  1. 这是一个测验。
  2. 这是TLA测试。
  3. 现在有一个博士。

以上是 将字符串拆分为句子 的全部内容, 来源链接: utcz.com/qa/413064.html

回到顶部