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に同じ単語を2回入力すると、最初の出現は2つの「-」になります。

例えば:

こんにちはこれは-androidです(正常に動作します)

こんにちはこれは--android-androidです(正常に動作しません)

そして、望ましい結果は次のようになります。

こんにちはこれは-androidandroidです(繰り返される単語がすでに存在するため)

何か助けはありますか?前もって感謝します

4

2 に答える 2

0

カウンターを設定してみてください。カウンターが1より大きい場合は、-を記述しないでください。

于 2012-12-12T15:20:14.013 に答える
0

あなたの質問はあまり明確ではありません。たぶん、Androidの単語がすでに見つかっているので、接頭辞として-を付けないでください。

その場合は、mylistから数学の単語を削除してください。そのためにはlistIteratorを使用してください。

于 2012-12-12T15:22:11.573 に答える