2013-05-30 32 views
0

我使用apached的Lucene 3.6 想要的拼寫錯誤的單詞的高亮與 使用「開始」和「結束」的位置突出顯示類整合實現了一個拼寫檢查字符串文本的開始和結束位置的話。至獲取Java中的JTextArea

想知道如何獲得 文本的開始和結束位置,因爲它們被輸入到jtextarea中。我知道將不得不使用鍵盤和鼠標事件偵聽器。

但是,如何獲得文本字符串中每個單詞 的「開始」和「結束」位置。

謝謝。

+1

這將是很好,有關如何調用lucene的更多信息。例如。它是否需要很長的文字,還是僅僅需要文字?如果一個單詞拼寫錯誤,它會返回給您什麼樣的數據? –

回答

0

假設「言」只是定義爲用空格分隔的字符組,你可以找到所有空間的指數,像這樣:

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

你可以承擔由此產生的空間索引列表,並建立名單字對象,零長度(相鄰的空間索引)等

0

的消除的話,您需要調用getText()得到文本區域作爲一個字符串的完整文本。然後,你可以講出了這個字符串,檢查他們,並在相同的步驟得到的話指數及其最終指數,這只是開始索引+字長。

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++; 
}