Прайсы 2

  • 20
  • Недоступна
CRUD для таблицы внутри файла. Напиши программу, которая считывает с консоли имя файла для операций CRUD и при запуске в зависимости от флага, переданного в параметрах обновляет данные товара с заданным id или производит физическое удаление товара с заданным id (удаляет из файла все данные, которые относятся к переданному id).
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (499)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
tsushko karina
Уровень 25
22 марта, 15:09
есть ощущение, что валидатор не принимает ничего кроме своего правильного ответа😡если написать программу точь в точь как правильное решение, за исключением имен переменных, он ее тоже не принимает😡😡
11 марта, 19:08
У меня валидатор не принял, хотя все удаляется/апдейтится. Нет сил с ним воевать, да ну нафиг. Эту задачу решила через класс Product как в прошлой задаче, но сделала не лист а мап с ключом айди. Скопировала пример для файла из условия задачи и огребла, там оказывается quantity не увеличено до 4 символов.
YuriSt
Уровень 26
5 марта, 12:40
Прошлую задачу сделал своим способом без класса Product, в два раз короче код. Пришлось только подсмотреть как дописать строку через FileWriter, всё работало, но валидатор не пропускал. Эту решил уже через класс Product с первого раза. Задачи интересные! Узнал много нового.
Татьяна
Уровень 25
28 февраля, 17:54
Если не проходит третий пункт, проверьте, поставили ли вы после первого "case" break.
SvetLana
Уровень 23
6 февраля, 07:48
Почему в решении вместо того чтобы написать String price = args[3]; пишут String price = args[args.length - 2]; и зачем здесь вообще цикл? for (int i = 2; i < args.length - 2; i++) { name += args[i] + " "; } и зачем к имени прибавлять пробел? причём один
Sun
Уровень 28
6 февраля, 19:11
[args.length - 2] - потому что мы не знаем заранее какой длины будет массив args. Eсли в консоль введут название продукта из нескольких слов, например "Куртка для сноубордистов", то будет args[3] = "Куртка", args[4] = "для", args[5] = "сноубордистов", отсюда и необходимость в пробелах. А в args[6] и args[7] запишутся уже price и quantity соответственно.
11 марта, 19:00
Да, но не проще ли решить проблему, задав наименование товара в кавычках: -u 19847983 "какая то дорогущая фигня" 10000 5 Или мы не знаем, какой криворукий будет запускать программу?)
Человек
Уровень 26
29 января, 13:43
Не, автопроверки это здорово... Не, правда, хорошая идея. Но вот идея не давать тест кейсы на которых программа завалилась - верх абсурда!
Lafaed
Уровень 31
28 января, 15:39
Вы решили задачу лучше, чем 51% учеников. Вам удалось ее решить с 1 попытки. Среднее количество попыток для этой задачи 3.43. Всего эту задачу решили 16460 учеников. При этом мой вариант умеет "-d" "-u" "-c" Но я так и не догнал зачем строки разлагать на компоненты и сувать в Продукты, в итоге же мы всеравно оперируем строками. 1) циклом прочитал строки и каждую засунул в список 2) для уверенности очистил файл 3) Циклом прошелся по списку и проверил каждую строку. Если строка подходящая (нужный айди в ней) тогда складываем новую строку из этой айди + аргументы маина. Заменяем строку в списке на новую, ну или удаляем из списка (в зависимости от условий). 4) Циклом добавляем строчки в файл. Кароче ту ересь что я наговнокодил, в итоге валидатор даже с 1го раза захавал!
Ra
Уровень 37
Student
13 января, 09:42
Берем 1827, слегка переделываем, проходит проверку моментально. Вместо стрим max используем .toArray(String[]::new) и юзаем System.lineSeparator() Выкинул switch, не люблю лишнюю вложенность
Dmitry Student в Home
7 января, 17:34
не сразу заметил, что здесь в цене два нуля после запятой должно быть
SVCH
Уровень 41
5 января, 21:04
Логичнее вместо метода public static Product getProduct(String string) создать еще один конструктор в классе Product