В первый раз пытался сделать без методов, но не прошел по 4,5 и 6 пунктам. Теперь не засчитывает вообще все. В особенности я не понимаю почему не засчитывает второй пункт, ведь у меня только статический метод. Если не сложно, то можете мне все разжевать, как еду для беззубого деда)))
package com.javarush.task.task18.task1827;
import java.io.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/*
Прайсы
*/
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String fileName = reader.readLine();
if(args.length == 0) {
System.out.println("НЕТ ЗНАЧЕНИЙ СУЧКА");
}else {
try(FileReader fileReader = new FileReader(fileName);
FileWriter fileWriter = new FileWriter(fileName)){
BufferedReader bufferedReader= new BufferedReader(fileReader);
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
ArrayList<String> list = new ArrayList<>();
String line = bufferedReader.readLine();
while (line != null){
list.add(line);
}
ArrayList<Integer> list2 = new ArrayList<>();
for (String i : list){
list2.add(getNumbers(i));
}
String ID = Integer.toString(Collections.max(list2));
String result = ID;
if (ID.length() > 7) {result = result + args[1];
}else{
result = result + " " + args[1];
}
if (args[1].length() > 29) {
result = result + args[2];
}else {
result = result + " " + args[2];
}
if (args[2].length() > 8) {result = result + args[3];
}else {
result = result + " " + args[3];
}
bufferedWriter.write(result);
}
}
}
public static int getNumbers(String s) {
String[] n = s.split(""); //array of strings
StringBuffer f = new StringBuffer(); // buffer to store numbers
for (int i = 0; i < n.length; i++) {
if((n[i].matches("[0-9]+"))) {// validating numbers
f.append(n[i]); //appending
}else {
//parsing to int and returning value
return Integer.parseInt(f.toString());
}
}
return 0;
}
}