Всем доброго времени суток. Хотел бы выслушать идеи алгоритмов для следующего задания. Пишу на 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]);
}
}
}
Комментариев нет:
Отправить комментарий