文字列のリストがあり、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です(繰り返される単語がすでに存在するため)
何か助けはありますか?前もって感謝します