Не проходит валидацию по 4-6 пунктам, хотя работает правильно. Всю голову сломал, помогите плиз.
package com.javarush.task.task18.task1827;
import java.io.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
/*
Прайсы
*/
public class Solution {
public static void main(String[] args) throws Exception {
if (args.length == 0) return;
if (!args[0].equals("-c")) return;
String path;
List<Integer> idList = new ArrayList<>();
idList.add(0);
try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in))) {
path = reader.readLine();
}
try (BufferedReader reader = new BufferedReader(new FileReader(path))) {
String str;
while ((str = reader.readLine()) != null) {
idList.add(Integer.parseInt(str.split(" ")[0]));
}
}
try (FileWriter fileWriter = new FileWriter(path)) {
int id = Collections.max(idList) + 1;
fileWriter.write(System.lineSeparator());
fileWriter.write((String.format("%-8.8s%-30.30s%-8.2f%-4.4s", id, getParam(args, Param.PRODUCT_NAME), Double.parseDouble(Objects.requireNonNull(getParam(args, Param.PRICE))), getParam(args, Param.QUANTITY))));
}
}
private static String getParam(String[] args, Param param) {
StringBuilder result = new StringBuilder();
switch (param) {
case PRODUCT_NAME: {
for (int i = 1; i < args.length - 2; i++) {
result.append(args[i]).append(" ");
}
return result.toString();
}
case PRICE: {
result.append(args[args.length - 2]);
return result.toString();
}
case QUANTITY: {
result.append(args[args.length - 1]);
return result.toString();
}
}
return null;
}
private enum Param {
PRODUCT_NAME,
PRICE,
QUANTITY
}
}