Всем привет! Решил задачу другим способом, подглядев как тут решали другие.
Почему мое решение не пускает валидатор? Выглядит он, конечно, не очень.
import java.io.*;
public class Solution {
static boolean exit = false;//статическая переменная для выхода из цикла по записи строки
public static void main(String[] args) throws IOException {
int id = Integer.parseInt(args[0]);
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String nameFile = reader.readLine();
reader.close();
BufferedReader readFile = new BufferedReader(new InputStreamReader(new FileInputStream(nameFile)));
//Считываем данные из файла и вписываем в строку
String text = "";
while (readFile.ready()) {
int byteText = readFile.read();
char charText = (char) byteText;
text += String.valueOf(charText);
}
readFile.close();
//Разбиваем через регулярные выражения строку на массивы по строкам
String[] arrString = text.split("\n");
//Записываем в строку совпавшие данные из метода idfind.
String product = "";
for (String productLine : arrString) {
product = idFind(productLine, id);
if (exit) {
//тут выходим из цикла,если id совпали в методе idFind
break;
}
}
System.out.println(product);
}
//ищем совпадения id, для вывода информации о продукте
public static String idFind(String product, int id) {
char[] arrProductInfo = product.toCharArray();
//заполняюем строку символами
String productResult = "";
for (int i = 0; i < arrProductInfo.length; i++) {// проходим по массиву arrProductInfo
productResult += arrProductInfo[i];
}
//разбиваем на массив по регулярному выражению
String[] arrProductResult = productResult.split(" ");
String stringId = String.valueOf(id);
//сравниваем совпадение айди
if (arrProductResult[0].equals(stringId)) {
exit = true; //меняем статическую переменную для выхода из цикла записи строки
return productResult;
} else {
return "не найдено";
}
}
}