Страницы

Поиск по вопросам

вторник, 12 марта 2019 г.

Алгоритм поиска в тексте

Всем доброго времени суток. Хотел бы выслушать идеи алгоритмов для следующего задания. Пишу на Java. Имеется .txt фаил допустим:
стул,стол,книга,табуретка диван,мусор,ноутбук,стол ручка,зарядка,мышь,лампа
Я запрашиваю у пользователя слово. Допустим слово - стол. И мне нужно вывести в другой .txt фаил только те столбцы где находится слово стол, т.е в данном примере было бы:
стол мусор зарядка табуретка стол лампа
P.s была идея идти по строке, проверять каждое слово на сходство, и при этом вести счётчик для каждой итерации по словам в строке. Т.е если бы во второй строке попалось бы нужное слово, то индекс добавлял бы в массив. На выходе у меня был бы массив с номерами столбцов в которых есть искомое слово. Но как следовать дальше не знаю. Буду благодарен за любые идеи.


Ответ

Лучше идти не по строкам, а по столбцам. Тогда если в столбце встретилось слово, то можно сразу вывести этот столбец и перейти к следующему.
String wordToFind = ... String[][] words = ...
int numberRows = words.length; int numberColumns = words[0].length;
for (int j = 0; j < numberColumns; ++j) { boolean columnContainsWord = false; for (int i = 0; i < numberRows; ++i) { if (wordToFind.equals(words[i][j])) { columnContainsWord = true; break; } }
if (columnContainsWord) { // выводим столбец for (int i = 0; i < numberRows; ++i) { System.out.println(words[i][j]); } } }

Комментариев нет:

Отправить комментарий