Все тесты проходит. Но валидатор не пропускает.
Рекомендации от модератора:
Требование задачи не выполнено.
Как мне по такой "бесценной рекомендации" определить, что вообще не так?..
package com.javarush.task.task18.task1828;
import java.io.*;
import java.util.ArrayList;
/*
Прайсы 2
*/
public class Solution {
public static void main(String[] args) throws IOException {
String fileName=new BufferedReader(new InputStreamReader(System.in)).readLine();
if (args.length!=0) {
if (args[0].startsWith("-u")) {
fileWrite(updateList(args[1],args[2],args[3],args[4],fileReadToList(fileName)),fileName);
}
if (args[0].startsWith("-d")) {
fileWrite(dellStringFromList(args[1],fileReadToList(fileName)),fileName);
}
}
}
static ArrayList<String> updateList(String indexUpdate, String productName, String price, String quantity, ArrayList<String> list){
String indexUpdateT=(indexUpdate+" ").substring(0,8);
String productNameT=(productName+" ").substring(0,30);
String priceT=(price+" ").substring(0,8);
String quantityT=(quantity+" ").substring(0,4);
String resultString="\n"+indexUpdateT+productNameT+priceT+quantityT;
for (int i = 0; i < list.size(); i++) {
int a=Integer.parseInt(list.get(i).substring(0,8).trim());
int b=Integer.parseInt(indexUpdate.trim());
if (a==b){
list.set(i,resultString);
}
}
return list;
}
static ArrayList<String> dellStringFromList(String indexDellString, ArrayList<String>list){
for (int i = 0; i < list.size(); i++) {
int a=Integer.parseInt(list.get(i).substring(0,8).trim());
int b=Integer.parseInt(indexDellString.trim());
if (a==b){
list.remove(i);
}
}
return list;
}
static ArrayList<String> fileReadToList(String fileName) throws IOException {
FileReader reader=new FileReader(fileName);
ArrayList<String> list=new ArrayList<>();
char[] buf=new char[51];
while (reader.ready()){
reader.read(buf);
list.add(new String(buf));
}
reader.close();
return list;
}
static void fileWrite(ArrayList<String> list,String fileName) throws IOException {
FileWriter writer=new FileWriter(fileName);
if (list!=null)
for (int i = 0; i < list.size(); i++) {
writer.write(list.get(i));
}
writer.close();
}
}
В моих словах? Не-не, я как раз думаю, какой скрытый смысл в этом \n. Никогда раньше не видел, что бы строка начиналась с символа перевода строки. Я сам твой код не тестил, но ты же наверняка смотрел на файл с результатом работы. Там нормально всё?Пардон, сначала написал, потом увидел, что задача решена.