我正在获取文本并将其打断 - 创建一个数组,其中每个项目都包含一个完整的句子。我决定最好的方法是使用 BreakIterator 类。这是我正在使用的代码:
theSentences = new ArrayList<String>();
String myText = aString; //the text is produced through a text box
BreakIterator boundary = BreakIterator.getSentenceInstance();
boundary.setText(myText);
int start = boundary.first();
for (int end = boundary.next();
end != BreakIterator.DONE;
start = end, end = boundary.next())
{
String temp = myText.substring(start,end);
theSentences.add(temp.trim());
}
当用户记得在句子末尾包含一个空格(大多数人都会这样做)时,这绝对可以正常工作。然而,人们在打字时确实会出错,如果他们没有在句号后加一个空格,代码似乎并没有意识到已经到了句子的结尾。我能做些什么呢?
我确实意识到我可以改用正则表达式,但似乎最好使用 BreakIterator,因为这就是它的用途。还要编写一个正则表达式来区分句号和句号的所有其他可能用途,这让我很头疼:-)