Поиск данных внутри файла

  • 20
  • Недоступна
Считать с консоли имя файла. Найти в файле информацию, которая относится к заданному id, и вывести ее на экран в виде, в котором она записана в файле. Программа запускается с одним параметром: id (int). Закрыть потоки. В файле данные разделены пробелом и хранятся в следующей последовательности: id
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (412)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Максим Дудин 19 уровень, Калининград
13 января, 14:24
Да ладно, прям раз и квас... Создаете BufferedReader. В цикле читаете строку Потом строку дробите на массив по пробелу.// именно потом, так проще будет вывести на экран "Сравниваете (equals) первый элемент массива и первый переданный аргумент." //лично я сравнивал Int' ы первого элемента массива и первого аргумента (убоявшись условия id(int) в задании), но это, как показывают комменты ниже, не обязательно. Если совпадают выводим считанную строку Прерываем цикл.// считаем, что в нашем списке id уникальный P.S. а в эталонном решении ещё прикольней
Виктор 19 уровень
30 декабря 2020, 16:37
Просто порезал все split(" ") и сравнил первый элемент массива (то есть id) с переданным параметром. Если совпадает вывести на экран строку. Все.
Андрей 22 уровень, Волгоград
16 декабря 2020, 13:33
Кто юзает startsWith, обратите внимание. 12 productName price quantity 121 productName price quantity Может сэкономить попытки.
Kes Чайник в Банк
13 декабря 2020, 01:56
По формулировке не совсем ясно, на экран надо выводить всю строку или только то ,что после id. Ответ: всю строку
Kozzy Rock Программист 1С в Фриланс
6 декабря 2020, 19:50
Если в первых задачах по прайсам не допёр, что нужно через объекты делать, то тут сделал копипастом из первых за 5 минут. А когда посмотрел правильное решение, оказалось, что это излишне))
Cypriiz 20 уровень
1 декабря 2020, 19:26
Пробел после аргумента решает все проблемы
Сергеев Алексей 20 уровень, Москва
29 ноября 2020, 22:03
А я с регулярками разбираюсь на таких заданиях, удобная штука однако)
Mikhail Belyaev Software Developer
21 ноября 2020, 22:06
На заметку, вдруг кому-то пригодится. У меня валидатор не принимал вот такой вариант:
while ((line = bufferedReader.readLine()) != null)
    if (line.startsWith(String.format("%" + (-8) + "s", idPos))) System.out.println(line);
Валидатор принял только после того, как я переделал так:
while ((line = bufferedReader.readLine()) != null)
    if (line.startsWith(idPos + " ")) System.out.println(line);
21 ноября 2020, 12:31
Тот же результат, что у Станислава до меня. Но подход еще проще: проверьте, начинается ли считанная строка с [ аргумента + " " ], если да - выводите ее String.startsWith(String)
Станислав 19 уровень, Москва
20 ноября 2020, 11:48
Вы решили задачу лучше, чем 61% учеников. Вам удалось ее решить с 1 попытки. Среднее количество попыток для этой задачи 3.12. Всего эту задачу решили 15895 учеников. Создаете BufferedReader и читаете построчно. Строку дробите на массив по пробелу. Сравниваете (equals) первый элемент массива и первый переданный аргумент. Если совпадают первые строки - выводим все содержимое массива. Прерываем цикл.
Максим Дудин 19 уровень, Калининград
13 января, 14:16
а я уже лучше чем 60% и 16361 ученик...