Прайсы 2

  • 10
  • Недоступна
CrUD для таблицы внутри файла Считать с консоли имя файла для операций CrUD Программа запускается с одним из следующих наборов параметров: -u id productName price quantity -d id Значения параметров: где id - 8 символов productName - название товара, 30 chars (60 bytes) price - цена, 8 символов quant
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (233)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Artem Diachenko19 уровень, Днепр
вчера, 15:44
После "Прайс 1" легко зашла, с первой попытки. Всего эту задачу решили 9057 учеников.
alex19 уровень
позавчера, 12:06
Хорошая задача, побольше бы таких
Юрий19 уровень, Калининград
пятница, 08:04
Всего эту задачу решили 9034 учеников.
Вячеслав20 уровень, Санкт-Петербург
10 февраля, 15:46
Всего эту задачу решили 8945 учеников Оо
13 февраля, 16:56
Update
Дмитрий Чаруйский23 уровень, Санкт-Петербург
2 февраля, 11:34
Неужели с первого раза))) Ахахаха... Кстати, не дойти всё до лямбд, но чую, что нужно:
buffList.removeIf(s -> s.substring(0, 8).trim().equals(args[1]));
Ну ни красота?)))
Сабир24 уровень
23 января, 14:33
Кучу времени убил на поиск проблем в своем коде (реализовал через временный файл с последующей подменой исходного), а потом нашел в этом треде, что так не надо. В итоге с ArrayList прошло сразу 😕
Serp201520 уровень, Тольятти
21 января, 20:31
Bufferedwriter открывать непосредственно перед записью в файл, внутри условия на args.length > 0, иначе файл пустой на выходе.
Aka_ron4uk23 уровень, Санкт-Петербург
21 декабря 2019, 18:59
увидел столько, как мне показалось сложных решений в комментах... мне кажется самым простым вариантом через стрингбилдер (не знаю правда насколько это удачное решение в реальных проектах и было бы интересно узнать у опытных коллег по цеху=)) 1. Проверяем первый аргумент массива args[] 2. Сканером считываем построчно файл. 3. Проверяем строку через String.startsWith со вторым аргументом 4. Если совпадения нет, пишем ее в стрингбилдер. 5. Если есть проверяем на "-u"/"-d". 6. -d не пишем строку в СБ. 7. -u пишем в СБ строку из массива args (отформатировав, без всяких парсингов, проверка дины и substring с добавлением " " ) 8. Записываем нашу СБ в исходный файл поверх старых данных.
Konstantin Besednikov20 уровень, Киев
21 января, 13:30
А разве String.startsWith не будет одинаков для: 19847 Шорты пляжные синие 159.00 12 198479 Шорты пляжные черные с рисунко173.00 17 Ведь две строки начинаются с "19847"?
Aka_ron4uk23 уровень, Санкт-Петербург
24 января, 19:55
в условиях текущей задачи не будет. По условиям id должен состоять из 8 символов и представлять не "19847", а "19847 ", т.е. если пользователь ввел число меньше 8 символов, мы добавляем необходимое количество пробелов (но это как бы уже сделано за нас и для проверки мы должны вбить аргументы с количеством символов согласно заданию). И вот в таком случае String.startsWith отработает корректно.
Михаил22 уровень, Санкт-Петербург
20 декабря 2019, 07:39
CRUD2 не принимает, если указана кодировка, т.е. так не работает:
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), "Cp1251"));
При этом обновляется все отлично, а как убираю кодировку все ломается, но валидатор довольный 😁 Спасибо Антону (каммент далеко внизу) PS CRUD1 отлично хавает с кодировкой)
Сергей23 уровень, Минск
15 декабря 2019, 20:20
Понравились последние 2 задачи