Прайсы 2

  • 10
  • Недоступна
CrUD для таблицы внутри файла Считать с консоли имя файла для операций CrUD Программа запускается с одним из следующих наборов параметров: -u id productName price quantity -d id Значения параметров: где id - 8 символов productName - название товара, 30 chars (60 bytes) price - цена, 8 символов quant
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (188)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Artem Trofimov33 уровень, Одесса
8 октября, 22:59
Появилось желание поделиться хинтами: 😀пользуйте try-with-resources - убирает необходимость в кэтчах и файнали
try(BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)))
😀 стринг формат наше всё - зачем считать буковки руками?
String.format("%-8.8s%-30.30s%-8.8s%-4.4s", id, productName, price, quantity)
😀дело вкуса, конечно, но стримы выглядят няшно и кратко, к примеру чтение + удаление в одну строку:
reader.lines().filter(line -> !line.substring(0, 8).trim().equals(id)).collect(Collectors.toList());
Евгений20 уровень, Днепр
10 октября, 08:32
о, теперь понятно, не мог врубиться как удаление происходит ) про стартвиз подсмотрел у кого-то ранее по курсу ;) а к стримам надо привыкнуть, а то они для меня пока как какой-то новый язык в языке 🤪 учить надо :)
Евгений20 уровень, Днепр
8 октября, 06:38
А если извратиться, найти байты с которых начинается и заканчивается строка, разорвать в этих местах файл, всунуть/удалить нужное в байтах и слить в один файл
LuneFox20 уровень, Москва
29 сентября, 17:50
Уфф, босс 19 уровня пройден! Помучался в конце из-за кодировок, которые использует господин Валидатор. В итоге то, что у меня работало, он не принял, а то, что выдаёт ошибку у меня - он принимает как правильный ответ. Как решил (основные моменты): 1) В main есть switch, который запускает 1 из 4 методов CRUD, передавая каждому нужные для операции аргументы. 2) Есть класс Product, экземпляры которого имеют 4 поля: id, productName, price, quantity. 3) Есть методы loadProducts (читает файл и собирает товары в ArrayList) и saveProducts (записывает товары из ArrayList в файл), всё через FileReader / FileWriter. 4) В классе Product есть статические методы int getNextId() (ищет максимальный ID в переданном списке) и String applyLength() (используется в конструкторе Product, увеличивая строки до нужных размеров пробелами или отрезая лишнее). На всякий случай делюсь кодом, мб у кого-нибудь будут полезные замечания для меня.
Сергей25 уровень, Екатеринбург
20 сентября, 14:56
Нужно следить за кодировками в потоках
Galikhan Aysin22 уровень, Костанай
16 сентября, 23:30
подсказка вновь прибывшим - не парсите в инты и даблы. Это бесполезная трата времени. Здесь нет никаких вычислений. Тупо чтение/запись. Поэтому работа только со строками и их методами (split, substring, format, equals, ну и может ещё contains). Не забывайте про перенос строк.
Валентин Кудинов24 уровень, Самара
12 сентября, 12:40
Фух 66 попыток, благодаря комментариям поборол валидатора. Решал в браузере в идеа.
Wladyslaw27 уровень, Warsaw
11 августа, 16:11
Для прошлой задачи написал свои классы - обертки для JDK-шного FileReader и FileWriter, там в середине реализовал логику. Создал класс Product. При вычитке - строка парсится в объекты. При записи - объект преобразуется в форматированную согласно заданию строку и пишется в файл. Все классно, все работает - валидатор не принимает ругаясь тупо на все. Два дня возился - плюнул, перенес все в статический контекст в main не меняя логики и убрал объекты из цепочки - приняло. Для этой даже не стал возится. Тупо в лоб все написал в maine и забил. Такие вещи очень демотивируют - язык то ООПшный, а код в стиле ООП валидатор принимать отказывается
stefan22 уровень, Санкт-Петербург
30 августа, 07:53
я делал классами, валидатор принял, тоже стараюсь делать классами, так как - именно так, я считаю, и надо делать. Но свои обертки я не писал для потоков.
Nordis25 уровень, Санкт-Петербург
7 августа, 21:14
Часов 8 или 10 спустя. Всё проверил досконально. Но результат мне понравился. тут
Руслан24 уровень, Усть-Орда
7 августа, 20:07
млин, две последний задачи с первой попытки. Сегодня я в ударе), радуюсь, что число решивших постепенно уменьшается)) Хочется все задачи перерешать и быстро
Yerzhan20 уровень
23 августа, 20:03
зря радуешься, скорее всего у кого не получилось и потратили кучу времени просто пропустили эту задачу на потом. Как я например, вернулся к этим задачам через два уровня. А кто, читал в комментах, через 10 уровней возвращаются выполнить задачи.
Руслан24 уровень, Усть-Орда
23 августа, 21:18
Да наверно не очень красиво радоваться такому, но мотивация должна быть.
Ololo Sha22 уровень
18 июля, 12:13
Устал от этого уровня, аж дебагером научился пользоваться)