我正在使用apached lucene 3.6实现一个拼写检查程序 想要整合拼写错误的单词的重点 使用单词的“开始”和“结束”位置突出显示类。
想知道如何获得开始和结束位置 将文本输入jtextarea。
我知道必须使用键盘和鼠标事件监听器。
但是如何获得每个单词的“开始”和“结束”位置 在文本字符串中。
谢谢。答案 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++;
}