获取java jTextArea中String文本的开始和结束位置

时间:2013-05-30 15:45:52

标签: java swing awt jtextarea spell-checking

我正在使用apached lucene 3.6实现一个拼写检查程序  想要整合拼写错误的单词的重点  使用单词的“开始”和“结束”位置突出显示类。

想知道如何获得开始和结束位置  将文本输入jtextarea。

我知道必须使用键盘和鼠标事件监听器。

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

谢谢。

3 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

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

答案 2 :(得分: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++;
}