Обратите внимание, код argsID.equals(idList) по дебагеру должен запускать цикл, но этого не происходит и перескакивает на i=1.. что это значит?
посмотрел в отчете дебагера, там значение value имеет разную длину char? это из за этого? что делать?
![](https://cdn.javarush.com/images/system/856d9403-5b9f-4d4d-816a-85d4dc7ce7f8/1024.jpeg)
package com.javarush.task.task18.task1828;
import java.io.*;
import java.util.*;
/*
Прайсы 2
*/
public class Solution {
public static void main(String[] args) throws Exception {
//String[] args = new String[4];
//args[0] = "-c";
//args[1] = "ighjns nb jjrtfycrbt ptktyst ghtrhscyst b dczrbt";
//args[2] = "13";
//args[3] = "58948854";
String argsID = ""; //Выводим ID для сравнения с файлом
if (args[1] != null) {
argsID = args[1];
if (args[1].contains(" ")) {
argsID = args[1].substring(0, args[1].indexOf(' '));
}
}
if (args.length != 0 && args[0].equals("-u")) {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String name = reader.readLine();
reader.close();
FileReader fr = new FileReader(name);
BufferedReader reader1 = new BufferedReader(fr);
ArrayList<String> list = new ArrayList(); // записываем сюда строки из файла
//ArrayList<Integer> integers = new ArrayList<>();
String line;
while ((line = reader1.readLine()) != null) {
list.add(line);
//String id = line.substring(0, 8);
//if (id.contains(" ")) integers.add(Integer.parseInt(id.substring(0, id.indexOf(' '))));
//else list.add(Integer.parseInt(id));
}
reader1.close();
fr.close();
String id = argsID; //расчитываем ID
if (id.length() < 8) {
for (int i = 0; i < 8 - id.length(); i++) {
id = id + " ";
}
}
String productName = args[2]; // расчитываем productName
if (args[2].length() < 30) {
for (int i = 0; i < 30 - args[2].length(); i++) {
productName =productName + " ";
}
}
if (args[2].length() > 30) {
productName = args[2].substring(0, 30);
}
String price = args[3]; // расчитываем price
if (args[3].length() < 8) {
for (int i = 0; i < 8 - args[3].length(); i++) {
price = price + " ";
}
}
if (args[3].length() > 8) {
price = args[3].substring(0, 8);
}
String quantity = args[4]; // расчитываем quantity
if (args[4].length() < 4) {
for (int i = 0; i < 4 - args[4].length(); i++) {
quantity = quantity + " ";
}
}
if (args[4].length() > 4) {
quantity = args[4].substring(0, 4);
}
for (int i = 0; i < list.size(); i++) {
String idList = list.get(i).substring(0, 8);
if (idList.contains(" ")) idList = idList.substring(0, idList.indexOf(' '));
if (argsID.equals(idList)) {
list.remove(i);
list.add(id + productName + price + quantity);
}
}
FileWriter fw = new FileWriter(name);
BufferedWriter writer = new BufferedWriter(fw);
for (int i = 0; i < list.size(); i++) {
writer.write(list.get(i));
writer.flush();
}
fw.close();
writer.close();
}
}
}