Приветствую, сделал задачу, все согласно требованиям, но валидатор не принимает. Подскажите, что я не так понял?
package com.javarush.task.task18.task1828;
/*
Прайсы 2
Значения параметров:
где id - 8 символов
productName - название товара, 30 символов
price - цена, 8 символов
quantity - количество, 4 символа
-u - обновляет данные товара с заданным id
-d - производит физическое удаление товара с заданным id (все данные, которые относятся к переданному id)
*/
import java.io.*;
import java.util.ArrayList;
public class Solution {
public static class Product {
int id;
String nameProduct;
double price;
int qty;
public Product(int id, String nameProduct, double price, int qty) {
this.id = id;
this.nameProduct = nameProduct;
this.price = price;
this.qty = qty;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNameProduct() {
return nameProduct;
}
public void setNameProduct(String nameProduct) {
this.nameProduct = nameProduct;
if (nameProduct.length() > 30) {
this.nameProduct = nameProduct.substring(0, 30);
}
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
if (String.valueOf(price).length() > 8) {
this.price = Double.parseDouble(String.valueOf(price).substring(0, 8));
}
}
public int getQty() {
return qty;
}
public void setQty(int qty) {
this.qty = qty;
if (String.valueOf(qty).length() > 4) {
this.qty = Integer.parseInt(String.valueOf(qty).substring(0, 4));
}
}
@Override
public String toString() {
return String.format("%-8d%-30s%-8.2f%4d%n", id , nameProduct, price, qty);
}
}
public static void main(String[] args) throws IOException {
if (args.length == 0) return;
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String nameFile = reader.readLine();
// String nameFile = "dimon2.txt";
BufferedReader br = new BufferedReader(new FileReader(nameFile));
ArrayList<Product> products = new ArrayList<>();
while (br.ready()) {
Product product = getProduct(br.readLine());
products.add(product);
}
if (args[0].equals("-u")) {
for (Product product : products) {
if (product.getId() == Integer.parseInt(args[1])) {
// System.out.println(products.get(i));
product.setNameProduct(args[2]);
product.setPrice(Double.parseDouble(args[3]));
product.setQty(Integer.parseInt(args[4]));
// System.out.println(products.get(i));
}
}
}
else if (args[0].equals("-d")){
for (int i = 0; i < products.size(); i++) {
if (products.get(i).getId() == Integer.parseInt(args[1])) {
System.out.println(products.get(i));
products.remove(i);
System.out.println(products.get(i));
break;
}
}
}
FileWriter fileWriter = new FileWriter(nameFile);
for (Product product: products) {
fileWriter.write(product.toString());
}
reader.close();
br.close();
fileWriter.flush();
fileWriter.close();
}
public static Product getProduct(String string) {
String id = string.substring(0, 8).trim();
String nameProduct = string.substring(8, 38).trim();
String price = string.substring(38, 46).trim();
String qty = string.substring(46, 50).trim();
return new Product(Integer.parseInt(id), nameProduct, Double.parseDouble(price), Integer.parseInt(qty));
}
}