Страницы

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

среда, 22 января 2020 г.

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

#java #алгоритм


Всем доброго времени суток. Хотел бы выслушать идеи алгоритмов для следующего задания.
Пишу на Java. Имеется .txt фаил допустим:

    стул,стол,книга,табуретка
    диван,мусор,ноутбук,стол
    ручка,зарядка,мышь,лампа


Я запрашиваю у пользователя слово. Допустим слово - стол. И мне нужно вывести в другой
.txt фаил только те столбцы где находится слово стол, т.е в данном примере было бы:

    стол
    мусор
    зарядка
    табуретка
    стол
    лампа


P.s была идея идти по строке, проверять каждое слово на сходство, и при этом вести
счётчик для каждой итерации по словам в строке. Т.е если бы во второй строке попалось
бы нужное слово, то индекс добавлял бы в массив. На выходе у меня был бы массив с номерами
столбцов в которых есть искомое слово. Но как следовать дальше не знаю. Буду благодарен
за любые идеи.
    


Ответы

Ответ 1



Лучше идти не по строкам, а по столбцам. Тогда если в столбце встретилось слово, то можно сразу вывести этот столбец и перейти к следующему. 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]); } } }

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

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