К сожаления, второй раз выкладываю задачу, так как с первого раза нужной подсказки не получил :(
У меня в Идее не работает 39 строка, где equals() метод никак не хочет выдавать true при идентичных значениях. При чём такой же метод в 27 строке работает.
Но самое странное, что у меня код при разных вариантах завершается корректно(хотя и не делает того, что мне надо), а Валидатор просто зависает так и не скомпилировав мой код :(
HEEEEEEEEEEEELP!!!!!!
package com.javarush.task.task18.task1828;
/*
Прайсы 2
*/
import java.io.*;
import java.util.ArrayList;
public class Solution {
public static void main(String[] args) throws IOException {
if(args.length==0) {return;}
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String fileName = reader.readLine();
reader.close();
BufferedReader fileReader = new BufferedReader(new FileReader(fileName));
ArrayList<String> list = new ArrayList<>();
while(true) {
String str = fileReader.readLine();
if (str==null) {break;}
else {
list.add(str);
}
}
fileReader.close();
if(args[0].equals("-d")) {
for(int i=0; i<list.size(); i++) {
String[] id = list.get(i).substring(0, 8).split(" ");
for (String s: id) {
System.out.println(s);
}
if(args[1].equals(id[0])) {
list.remove(i);
System.out.println(list.get(i));
}
}
}
if(args[0].equals("-u")) {
String elemId = String.format("%-8s", args[1]);
String productname = String.format("%-30s", args[2]);
String price = String.format("%-8s", args[3]);
String quantity = String.format("%-4s", args[4]);
StringBuilder sb = new StringBuilder();
sb.append(elemId).append(productname).append(price).append(quantity);
System.out.println(sb);
for(int i=0; i<list.size(); i++) {
String[] id = list.get(i).substring(0, 8).split(" ");
if(args[1].equals(id[0])) {
list.add(i, sb.toString());
}
}
for (String st :list) {
System.out.println(st);
}
}
BufferedWriter writer = new BufferedWriter(new FileWriter(fileName));
for (String str : list) {
writer.write(str+"\n");
}
writer.close();
}
}
reader.ready вставил. Вывод в консоль убрал - он был для моей проверки.
Но, вопрос остаётся прежним :( не работает проверка в 32 строке на скрине. Там дебагер запущен и видно, что аргумент и значение идентичные, но при
этом всё равно false.