2012-12-12 87 views
0

我有一個字符串列表,我想比較每次在EditText中寫入的列表。如果有匹配,那麼我必須添加一個「 - 」字符作爲該字的前綴。在EditText中爲單詞添加前綴

我使用的是TextWatcher這是我到目前爲止的代碼:

@Override 
    public void afterTextChanged(Editable s) { 
     String tmp = s.toString(); 
     words = tmp.split(" "); 

     for (int i = 0; i < words.length; i++) { 
      for (Iterator iterator = myList.iterator(); iterator 
        .hasNext();) { 
       String str = (String) iterator.next(); 
       if (str.equalsIgnoreCase(words[i])) { 
        if (!words[i].contains("-")) { 
         tmp = tmp.replace(words[i], "-" + words[i]); 

        } 
        editMain.setText(tmp); 
        editMain.setSelection(tmp.length()); 

       } 
      } 
     } 
    } 

它的工作原理,但如果我在我的EditText兩次鍵入相同的單詞,第一ocurrence得到兩個「 - 」。

例如:

您好,這是-Android(工作正常)

您好,這是--android -Android(不起作用OK)

和所期望的結果應該是:

你好,這是-android機器人(因爲重複的單詞已經存在)

任何幫助嗎?在此先感謝

回答

0

您的問題不是很清楚。也許你的意思是android word已經找到了,然後它不應該以 - 作爲前綴。

如果是這樣,只需從mylist中刪除一個mathcing單詞。爲此使用listIterator。

+0

謝謝Snicolas,情況是這樣的,你的解決方案很好。 – pindleskin

0

嘗試設置一個計數器。如果計數器大於1,則不要編寫 -