0

apache lucene 3.6 を使用してスペルチェッカーを実装しています。単語の「開始」と「終了」位置を使用して、スペルミスのある単語の強調表示を Highlight クラスに統合したいと考えています。

jtextarea に入力されたテキストの開始位置と終了位置を取得する方法を知りたいです。

キーボードとマウスのイベントリスナーを使用する必要があることはわかっています。

しかし、テキストの文字列内の各単語の「開始」と「終了」の位置を取得するにはどうすればよいですか。

ありがとうございました。

4

3 に答える 3

0

jTextArea を取得して文字列をスペースで分割することはできませんか。これにより、領域内のすべての「単語」の配列が得られます。

String text = jTextArea.getText();
String[] words = text.split(' ');

次に、単語のインデックスを取得するには、単語の長さ + 1 のスペースを合計します。

int[] startIndices = new int[words.length];
int[] endIndices = new int[words.length];
int currentIndex = 0;
for (int i = 0; i < words.length; i++) {
    startIndices[i] = currentIndex;
    currentIndex += words[i].length;
    endIndices[i] = currentIndex;
    currentIndex++;
}
于 2013-05-30T16:09:17.270 に答える
0

テキスト領域内の完全なテキストを文字列として取得するには、getText()を呼び出す必要があります。次に、この文字列から単語を取得してチェックし、同じステップで単語のインデックスとその終了インデックスを取得できます。これは単純に開始インデックス + 単語長です。

于 2013-05-30T15:57:56.837 に答える