テキストを取得して文を分割しています-各項目に完全な文を含む配列を作成しています。これを行う最善の方法は、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 が作成されたものであるため、BreakIterator を使用するのが最善のようです。また、ピリオドの他のすべての可能な使用法とピリオドを区別する正規表現を書くと、頭が痛くなります:-)