0

我有一个字符串列表,我想将我在 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 中输入相同的单词两次,第一次出现两个“--”。

例如:

你好,这是-android(工作正常)

你好,这是--android -android(不能正常工作)

期望的结果应该是:

你好这是-android android(因为重复的词已经存在)

有什么帮助吗?提前致谢

4

2 回答 2

0

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

于 2012-12-12T15:20:14.013 回答
0

你的问题不是很清楚。也许你的意思是 android 单词已经被找到,那么它不应该以 - 为前缀。

如果是这种情况,只需从 mylist 中删除一个数学单词。为此,请使用 listIterator。

于 2012-12-12T15:22:11.573 回答