Вроде всё работает правильно... непонятки =(
package com.javarush.task.task07.task0708;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.*;
/*
Самая длинная строка
Самая длинная строка
1. Создай список строк.
2. Считай с клавиатуры 5 строк и добавь в список.
3. Используя цикл, найди самую длинную строку в списке.
4. Выведи найденную строку на экран. Если таких строк несколько, выведи каждую с новой строки.
Требования:
1. Инициализируй существующее поле strings класса Solution новым ArrayList<>
2. Программа должна считывать 5 строк с клавиатуры и записывать их в поле strings класса Solution.
3. Программа должна выводить самую длинную строку на экран.
4. Если есть несколько строк с длиной равной максимальной, то нужно вывести каждую из них с новой строки.
*/
public class Solution {
private static List<String> strings;
public Solution () {
strings = new ArrayList<String>();
}
public static List<String> Scan() throws Exception {
Scanner sc = new Scanner(System.in);
for (int i = 0; i<5;i++) {
strings.add(sc.next());
}
return strings;
}
public static String Max () {
String max = strings.get(0);
for (int i=1; i<strings.size();i++) {
if (strings.get(i).length() > max.length()) {
max = strings.get(i);
}
}
return max;
}
public static void Show (String max) {
for (int j=0; j<strings.size();j++) {
if (strings.get(j).length()==max.length()) { // Если длинна других значений такая же, то добавляем в maxim
System.out.println(strings.get(j));
}
}
}
public static void main(String[] args) throws Exception {
new Solution(); // Запуск конструктора ( Инициализация List)
Scan(); // Заполняем List
Show(Max()); // Сортируем и выводим в консоль
}
}