1. Создай список строк.
2. Считай с клавиатуры 5 строк и добавь в список.
3. Используя цикл, найди самую длинную строку в списке.
4. Выведи найденную строку на экран.
5. Если таких строк несколько, выведи каждую с новой строки.
Требования:
1. Объяви переменную типа ArrayList (список строк) и сразу проинициализируй ee.
2. Программа должна считывать 5 строк с клавиатуры и записывать их в список.
3. Программа должна выводить самую длинную строку на экран.
4. Если есть несколько строк с длиной равной максимальной, то нужно вывести каждую из них с новой строки.
package com.javarush.task.task07.task0708;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
/*
Самая длинная строка
*/
public class Solution {
public static void main(String[] args) throws Exception {
ArrayList <String> list = new ArrayList();
ArrayList <String> longestStrings = new ArrayList();
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
for (int i = 0; i < 5 ; i++) {
list.add(reader.readLine());
}
int maxLength = list.get(0).length();
for (int i = 0; i < list.size() ; i++) { // поиск максимальной длины
if (list.get(i).length() > maxLength) {
maxLength = list.get(i).length();
}
}
for (int i = 0; i < list.size() ; i++) { // добавление самых длинных строк в массив
if (list.get(i).length() == maxLength){
longestStrings.add(list.get(i));
}
}
for (int i = 0; i < longestStrings.size() ; i++) { // вывод самых длинных строк
System.out.println(longestStrings.get(i));
}
}
}
Понимаю что накручено и скорее всего можно было сделать гораздо проще и вообще одним массивом. Но в чем конкретно прокол? Помогите найти.