我有一个字符串列表,我想比较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(因为重复的单词已经存在)
有任何帮助吗?提前谢谢
答案 0 :(得分:0)
尝试设置一个计数器。如果计数器大于1,则不要写 -
答案 1 :(得分:0)
你的问题不是很清楚。也许你的意思是已经找到了android字,然后它不应该以 - 。
为前缀如果是这种情况,只需从mylist中删除一个计算单词。为此使用listIterator。