Прайсы 2

  • 10
  • Недоступна
CrUD для таблицы внутри файла Считать с консоли имя файла для операций CrUD Программа запускается с одним из следующих наборов параметров: -u id productName price quantity -d id Значения параметров: где id - 8 символов productName - название товара, 30 chars (60 bytes) price - цена, 8 символов quant
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (140)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Den Nonamed19 уровень
воскресенье, 20:33
Я делал через StringBuilder и при считывании файла построчно прямо в цикле while подменял строку той, которой мне надо, кто еще так делал?
NewBuy19 уровень, Санкт-Петербург
9 апреля, 16:50
Странно. Задача прошла тестирование и с другим файлом работает нормально, но при первом тестировании почему-то при записи первой строчки в файл туда добавился какой-то лишний байт, хотя в файле он не отражается, но при попытке преобразовать ID из первой строки в int через Integer.parstInt() выбрасывает ошибку NumberFormatException Хотя в файле ничего перед цифрами нет: И при последующем копировании текста файла в другой файл и многочисленных тестов с ним ничего такого не происходило. Что за хрень?
Den Nonamed19 уровень
воскресенье, 20:30
У мня такое было тоже. Возможно это спецсимвол начала файла. Я поборол через replaceAll("\\D+","");
Антон20 уровень, Москва
27 марта, 12:57
пипец сдал со второй попытки, потому что валидатор не принимал кодировку
BufferedReader bir = new BufferedReader(new InputStreamReader(new FileInputStream(fileName),"cp1251"))
удалил кодировку зачел!!! спасибо коменты почитал...так иначе до седых волос мона колоть! P.S. Делал через LinkedHashMap и обновлять удобно и удалять, для форматирования использовал самописную процедуру:
public static String updString (String str,int len){
       for(int i=str.length();i<len;i++){
           str+=" ";
       }
       return str.substring(0,len);
   }
Mike Woo24 уровень, Москва
23 марта, 10:32
"Когда сделал всё красиво и лаконично, через HashMap, в соответствие с заданием... и получил долбанную рекомендацию от долбанного ментора: /Товар с измененными данными должен находится на той же строке в файле./"
Mike Woo24 уровень, Москва
23 марта, 10:49
Спас LinkedHashMap.
Евгений Ашкинадзе19 уровень, Минск
18 марта, 12:32
А я два ArrayLista использовал. В первый добавлял индекс из начала строки, а во второй строку целиком. Потом если во втором списке надо что-то переделать, то в первом по ключу ищется номер строки. При печати итогового списка в файл на всякий случай последнюю строку печатал без переноса (print без ln). С первой попытки. Всегда делаю всевозможные тесты перед отправкой.
18 марта, 09:03
Если кто использует кодировку windows-1251 - убирайте её. С ней не пропускает валидатор. Из-за этого промучился долго :) Также кто мучается с добавлением пробелов, почитайте про String.format. http://study-java.ru/uroki-java/formatirovanie-chisel-i-texta-v-java/ С помощью него можно добавить необходимое ко-во пробелов одной строкой String finalString = String.format("%-8s%-30s%-8s%-4s", id, productName, price, quantity);
Александр Снопков28 уровень, Красноярск
15 марта, 07:11
Для выполнения 3 пункта обязательно использование String.format. Предыдущее задание прокатило без форматирования строки
Eugene20 уровень
25 марта, 12:11
У меня и это прокатило без String.format. Хватило StringBuilder
Don Fear25 уровень, Екатеринбург
14 марта, 13:18
Я победил его! 18 Мать его попыток! Итак что НЕ нужно делать: не стоит умничать и заниматься оптимизацией. Что валидатор потребовал в обязательном порядке: 1) Чтение строки ввоба имени прайса в не зависимости от валидности аргументов 2) Чтение самого прайса в не зависимости от валидности аргументов 3) Хранение счиатнного прайса в ArrayList<String> (да, да, именно ArrayList! без иных вариантов) 4) Чтение прайса через
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(<File_Name>)));
Александр20 уровень, Казань
14 марта, 11:21
Не проходит валидацию по 3 пункту
При запуске программы с параметрами "-u id productName price quantity"
должна обновится информация о товаре в файле.
https://javarush.ru/help/17751
Анатолий Михайлов28 уровень, Санкт-Петербург
1 марта, 17:02
ДВА ЗНАКА ПОСЛЕ ЗАПЯТОЙ В DOUBLE PRODUCTNAME МОЖЕТ БЫТЬ ИЗ НЕСКОЛЬКИХ СЛОВ
Александр20 уровень, Казань
15 марта, 17:11
>PRODUCTNAME МОЖЕТ БЫТЬ ИЗ НЕСКОЛЬКИХ СЛОВ Может, но как аргумент передается в виде одной строки "шапка зимняя"