解析句子绝非易事,即使对于像英语这样的拉丁语言也是如此。像您在问题中概述的那样幼稚的方法通常会失败,以至于在实践中被证明是无用的。
更好的方法是使用配置了正确的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));}
产生以下结果:
- 这是一个测验。
- 这是TLA测试。
- 现在有一个博士。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)