0

我正在使用 apached lucene 3.6 实现拼写检查器想要使用单词的“开始”和“结束”位置将拼写错误的单词的突出显示与 Highlight 类集成。

想知道如何在将文本输入到 jtextarea 时获取文本的开始和结束位置。

我知道将不得不使用键盘和鼠标事件侦听器。

但是如何获得文本字符串中每个单词的“开始”和“结束”位置。

谢谢你。

4

3 回答 3

0

假设“单词”只是定义为由空格分隔的字符组,您可以找到所有空格的索引,如下所示:

int index = 0;
String string = ... // get from text area
while((index = string.indexOf(' ', index)) != -1) {
   // save them      
}

您可以获取空间索引的结果列表并构建 Word 对象列表,消除零长度的单词(相邻空间索引)等。

于 2013-05-30T15:57:26.843 回答
0

您需要调用getText()以将文本区域中的完整文本作为字符串获取。然后你可以从这个字符串中取出单词,检查它们,并在同一步骤中获取单词的索引及其结束索引,它们只是开始索引+字长。

于 2013-05-30T15:57:56.837 回答
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 回答