это мой первый вопрос о переполнении стека, но у меня есть некоторый опыт работы с Java.Я делаю Java-приложение на данный момент (575 строк и счет!) И пытаюсь найти строку в ArrayList.Но Я не хочу, чтобы он был точным! Позвольте мне уточнить: я хочу перебрать каждый элемент ArrayList и найти в этой строке другую строку.если строка найдена в элементе ArrayList, (на данный момент) я хочу, чтобы она выводилась на консоль.Я надеюсь, что я достаточно ясно.
Ниже приведен соответствующий код.Все переменные определены и код компилируется, просто никакой вывод (из функции поиска) не печатается.Я уверен, что это потому, что цикл for не выполняется, но я озадачен, почему.
//the keylistener that calls the search() function, attached to a JTextField that the query is entered into
class searchFieldListener implements KeyListener {
searchFieldListener() {
}
public void keyTyped(KeyEvent event) {
if (event.getID() == KeyEvent.KEY_TYPED) {
query = searchField.getText()+Character.toString(event.getKeyChar());
System.out.println(query);
for (i = 0; i == nameList.size(); i++) {
search(query, i);
}
}
}
public void keyReleased(KeyEvent event) {
}
public void keyPressed(KeyEvent event) {
}
}
//the troublesome search() function
void search(String query, int iter) {
searchString = nameList.get(iter);
System.out.println(searchString);
if (searchString.indexOf(query) != -1) {
System.out.println(Integer.toString(iter));
} else {
System.out.println("not found \n");
}
}
Переменные / Объекты и использует:
- searchFieldListener
KeyListener для JTextField вызвал searchField по понятным причинам. - query
Строка текста для поиска. - i
Почему все используют i в циклах?Я предполагаю, что это традиция кодирования. - nameList
ArrayList имен (ну, да). - searchString
TheСтрока для поиска в (например, попробуйте найти запрос в searchString ). - iter
Количество итерацийцикл прошел до сих пор.Еще раз надеюсь, что я был достаточно ясен.Спасибо!