Red Planet
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Добрый день! Есть вопрос. Пишу свое посимвольное сравнение (условия задачи не позволяют equalsIgnoreCase применять). Проблема в том, что при сравнении игнорируется последний символ введенной строки (этот способ закомментирован), в незакомментированном все работает. Например. Введенная строка: And Имена: Andrey, Anton В список совпадающих вносится: Andrey. Anton не вносится, так как третья буква t, а не d. Так и должно быть. В неработающем if последняя буква введенной строки игнорируется. Например. Введенная строка: Anw Имена: Andrey, Anton В список совпадающих вносится: Andrey, Anton. Код (неработающий if помечен красным, а работающий зеленым). Цитата: ArrayList<String> listOfEqs = new ArrayList<String>(); for (String t: listOfNames) { int endOfStr = Math.min(etIn.getText().toString().length(), t.length()); int cntOfEqSimbs = 0; for (int i=0; i<endOfStr; ++i) { if (t.substring(i, i+1).equalsIgnoreCase(etIn.getText().toString().substring(i, i+1)) && !listOfEqs.contains(t)) { cntOfEqSimbs++; } // if. if (cntOfEqSimbs==etIn.getText().toString().length()) listOfEqs.add(t); /* if (!t.substring(i, i+1).equalsIgnoreCase(etIn.getText().toString().substring(i, i+1)) || listOfEqs.contains(t)) break; // listOfEqs.add(t); */ } // nested for. } // for. twFound.setVisibility(0); lvOfEqs.setAdapter(new ArrayAdapter<String>(this, android.R.layout.test_list_item, listOfEqs)); } // onClick. | listOfNames - массив строк, источник имен для сравнения. listOfEqs - массив строк, в который вносятся совпадающие имена. endOfStr - предел, до которого сравниваем (нужен, так как не знаем, что будет короче: имя или введенная строка. etIn - EditText, в который вводится строка для сравнения с именем. cntOfEqSimbs - счетчик совпадающих символов (нужен для отбраковки: если хотя бы одна буква не совпадет, то имя не будет внесено в список совпадающих). Да, у меня есть работающий if, но неработающий нравится больше, так как там нет лишней переменной cntOfEqSimbs и второго if. | Всего записей: 215 | Зарегистр. 18-06-2009 | Отправлено: 17:41 21-06-2011 | Исправлено: Red Planet, 17:45 21-06-2011 |
|