在EditText中为单词添加前缀

问题描述:

我有一个字符串列表,我想比较每次在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机器人(因为重复的单词已经存在)

任何帮助吗?在此先感谢

您的问题不是很清楚。也许你的意思是android word已经找到了,然后它不应该以 - 作为前缀。

如果是这样,只需从mylist中删除一个mathcing单词。为此使用listIterator。

+0

谢谢Snicolas,情况是这样的,你的解决方案很好。 – pindleskin

尝试设置一个计数器。如果计数器大于1,则不要编写 -