18 левел 11 лекция Прайсы2 - Плиз подскажите, почему не проходит по циклу в условии if(args[0].equals("-u")) и в этом цикле не находит равенство между if(idProductStr.equals(key)) ? Уже как неделя, с этой задачей е*усь(((
package com.javarush.task.task18.task1828;/*Прайсы 2*/import java.io.*;import java.util.*;
public class Solution {
public static void main(String[] args) throws Exception {
args = new String[] {"-u", "1932", "ЛетниеВаленкиСКондиционером", "121", "12"};
HashMap<String, String> map = new HashMap<>();
String name = "C:\\JavaRushTasks\\product.txt";
if (args.length != 0) {
FileInputStream inName = new FileInputStream(name);
BufferedReader br = new BufferedReader(new InputStreamReader(inName, "UTF-8"));
StringBuilder stringBuilder = new StringBuilder();int i;
while ((i = br.read()) != -1) {
char ch = (char) i;
stringBuilder.append(ch);
}
inName.close();
System.out.println("stringBuilder: ");System.out.println(stringBuilder);
ArrayList<String> idStringList = new ArrayList<>(Collections.singletonList(stringBuilder.toString()));
String idProductStr = idProduct(args[1]); // 8 символов - 1932
String nameProduct = nameProduct(args[2]); // 30 символов
String price = priceProduct(args[3]); // 8 символов
String quantity = quantityProduct(args[4]); // 4 символа
String newStr =
nameProduct +
price +
quantity;
for (String s : idStringList) {
System.out.println("s в цикле: ");System.out.println(s);
String idNum = s.substring(0, 8);//удаляем все, кроме первых 8 элементов - id
String ValueNum = s.substring(8);//удаляем первые 8 элементов - оставляем остальное
map.put(idNum, ValueNum);//добавляем все id`ы в key, остальное все в value
}
System.out.print("map: "); System.out.println(map);
if(args[0].equals("-u")) {
for(HashMap.Entry<String, String> entry: map.entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
System.out.println("до if: ");System.out.println(key + value);
System.out.println("до if: ");System.out.println(key + idProductStr);
if(idProductStr.equals(key)) {
System.out.println("в if: ");System.out.println(key + idProductStr);
map.put(idProductStr, newStr);
System.out.print("key + value: "); System.out.println(key + value);
}
System.out.println("map: "); System.out.println(map);
}
}
if(args[0].equals("-d")) {
//deleteStringToFile(map, name);
}
}
//reader.close();
}
public static String idProduct(String idProduct) {//обрабатываем args id
idProduct = String.format("%-8s", idProduct);
return idProduct;
}
public static String nameProduct(String nameProduct) { // обрабатываем args имя
nameProduct = String.format("%-30s", nameProduct);
return nameProduct;
}
public static String priceProduct(String price) { // обрабатываем args цену
price = String.format("%-8s", price);
return price;
}
public static String quantityProduct(String quantity) { // обрабатываем args количество
quantity = String.format("%-4s", quantity);
return quantity;
}
public static void stringReplacement(HashMap<String,String> map, String name) {
try {
StringBuilder writeBuilder = new StringBuilder();
FileOutputStream fos = new FileOutputStream(name);
BufferedOutputStream bos = new BufferedOutputStream(fos);
for(HashMap.Entry<String, String> entry: map.entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
writeBuilder.append(key).append(value).append("\n");
//System.out.println(writeStrBl);
//System.out.println("");System.out.println("idProduct - " + entry.getKey() + "newStr - " + entry.getValue());
}
bos.write(writeBuilder.toString().getBytes());
System.out.println("writeBuilder: ");System.out.println(writeBuilder);
bos.close();
} catch (IOException e) {}
}
public static void deleteStringToFile(HashMap<String,String> hashMap, String name) {
try {
StringBuilder writeStrBl = new StringBuilder();
FileOutputStream fos = new FileOutputStream(name);
BufferedOutputStream bos = new BufferedOutputStream(fos);
for(HashMap.Entry<String, String> entry: hashMap.entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
writeStrBl.append(key).append(value);
System.out.println(writeStrBl);
System.out.println(entry.getKey() + entry.getValue());
}
bos.write("".getBytes());
bos.write(writeStrBl.toString().getBytes());
//System.out.println(writeStrBl);
bos.close();
} catch (IOException e) {}
}
}