Стоит обратить на данные строчки тут код на который ругается валидатор
-c Panties black white 190.11 22 мои параметры
Добавляю строки и обьединяю в одну строку
StringBuilder id = new StringBuilder(Integer.toString(searchID(fileName)));
if(id.length() != 8) id.setLength(8);
//считываем quantity
StringBuffer quantity = new StringBuffer(args[args.length-1]);
if(quantity.length() != 4) quantity.setLength(4); //если длина не ровна 4 то определяем длину до 4 знаков
//считываем price
StringBuffer price = new StringBuffer(args[args.length-2]);
if(price.length() != 8) price.setLength(8); //если длина не ровна 8 то определяем длину до 4 знаков
//проходимсяпо массиву и считываем product так как он может занимать несколько ячеек в массиве
StringBuffer productName = new StringBuffer();
for(int i = 1; i < args.length -2; i++){
if(i == args.length -3){ //если мы дошли до последнего элемента то просто записываем
productName.append(args[i]);
}else // иначе разделяем пробелами слова
productName.append(args[i] + " ");
}
if(productName.length() != 30) productName.setLength(30); // если длина product не 30 устанавиливаемв 30
Тут происходит обьединение//обьединяем все строки в одну
String stringForWrite = id.toString() + productName.toString() + price.toString() + quantity.toString();package com.javarush.task.task18.task1827;
import java.io.*;
/*
Прайсы
где id - 8 символов.
productName - название товара, 30 символов.
price - цена, 8 символов.
quantity - количество, 4 символа.
*/
//-c New shorts 190.22 10
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String fileName = reader.readLine();//
addNewLine(args, fileName);
}
public static boolean addNewLine(String[] args, String fileName) throws Exception {
//проверяет запус программы с параметрами
if(args.length == 0) return false;
//Добавляем пробелы если id меньше 8 лиюо обрезаем
StringBuilder id = new StringBuilder(Integer.toString(searchID(fileName)));
if(id.length() != 8) id.setLength(8);
//считываем quantity
StringBuffer quantity = new StringBuffer(args[args.length-1]);
if(quantity.length() != 4) quantity.setLength(4); //если длина не ровна 4 то определяем длину до 4 знаков
//считываем price
StringBuffer price = new StringBuffer(args[args.length-2]);
if(price.length() != 8) price.setLength(8); //если длина не ровна 8 то определяем длину до 4 знаков
//проходимсяпо массиву и считываем product так как он может занимать несколько ячеек в массиве
StringBuffer productName = new StringBuffer();
for(int i = 1; i < args.length -2; i++){
if(i == args.length -3){ //если мы дошли до последнего элемента то просто записываем
productName.append(args[i]);
}else // иначе разделяем пробелами слова
productName.append(args[i] + " ");
}
if(productName.length() != 30) productName.setLength(30); // если длина product не 30 устанавиливаемв 30
//обьединяем все строки в одну
String stringForWrite = id.toString() + productName.toString() + price.toString() + quantity.toString();
//Записываю
PrintStream printStream = new PrintStream(new FileOutputStream(fileName, true));
printStream.println(stringForWrite);
printStream.close();
return true;
}
public static int searchID(String fileName) throws IOException {
int newID = 0;
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(fileName),"windows-1251"));
String stringForFile;
while((stringForFile = bufferedReader.readLine()) != null){
stringForFile = stringForFile.substring(0,8).trim().replaceAll(" +","");
if(newID < Integer.parseInt(stringForFile)){
newID = Integer.parseInt(stringForFile);
}
}
bufferedReader.close();
return ++newID;
}
}