Доброго времени суток.
Ранее уже пытался решить эту задачу. Не проходила по третьему пункту. Спустя некоторое время снова взялся за неё, переписал весь код с нуля и опять двадцать пять - снова задача не проходит по третьему пункту. Пожалуйста, помогите понять в чем ошибка.
package com.javarush.task.task18.task1828;
/*
Прайсы 2
*/
import java.io.*;
import java.util.ArrayList;
public class Solution {
private static ArrayList<String> list = new ArrayList<>();
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String fileName = reader.readLine();
reader.close();
if(args.length != 0) {
BufferedReader fileReader = new BufferedReader(new FileReader(fileName));
String line = null;
while((line = fileReader.readLine()) != null) {
list.add(line);
}
fileReader.close();
if("-u".equals(args[0])) {
update(args);
} else if("-d".equals(args[0])) {
delete(args);
}
BufferedWriter fileWriter = new BufferedWriter(new FileWriter(fileName));
for(int i = 0; i < list.size(); i++) {
fileWriter.write(list.get(i));
fileWriter.newLine();
}
fileWriter.close();
}
}
private static void update(String[] args) {
String id = args[1].length() > 8 ? args[1].substring(0, 8) : String.format("%-8s", args[1]);
String productName = args[2].length() > 30 ? args[2].substring(0, 30) : String.format("%-30s", args[2]);
String price = args[args.length - 2].length() > 8 ? args[args.length - 2].substring(0, 8) : String.format("%-8s", args[3]);
String quantity = args[args.length - 1].length() > 4 ? args[args.length - 1].substring(0, 4) : String.format("%-8s", args[4]);
for(int i = 0; i < list.size(); i++) {
if(list.get(i).startsWith(id)) {
list.set(i, id + productName + price + quantity);
break;
}
}
}
private static void delete(String[] args) {
String id = String.format("%-8s", args[1]);
for(int i = 0; i < list.size(); i++) {
if(list.get(i).startsWith(id)) {
list.remove(i);
break;
}
}
}
}