Самая длинная строка в List

507
15 января 2017, 15:37

Задача:

  1. Создай список строк.
  2. Считай с клавиатуры 5 строк и добавь в список.
  3. Используя цикл, найди самую длинную строку в списке.
  4. Выведи найденную строку на экран.
  5. Если таких строк несколько, выведи каждую с новой строки.

Как правильно вывести только самую длинную строку из списка и те - которые будут равны ее длине?

package com.javarush.test.level07.lesson06.task02;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
public class Solution
{
   public static void main(String[] args) throws Exception 
   {
    ArrayList<String> list = new ArrayList<>();
    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    for (int i = 0; i < 5; i++){
        String s = reader.readLine();
        list.add(s);
    }
    int max = list.get(0).length();
    for (int i = 0; i < list.size(); i++){
        if (list.get(i).length() > max){
            max = list.get(i).length();
            System.out.println(list.get(i));
        }else if (list.get(i).length() == max){
            max = list.get(i).length();
            System.out.println(list.get(i));
        }
    }
  }
}
Answer 1

У меня получилось такое решение:

List<String> strings = new ArrayList<>();
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
for (int i = 0; i < 5; i++) 
       strings.add(reader.readLine());
Collections.sort(strings, (s1, s2) -> s2.length() - s1.length());
int length = strings.get(0).length();
for (String string : strings)
     if (length == string.length())
         System.out.println(string);
     else
         break;
Answer 2

что--то вроде такого:

public static void main(String[] args) throws Exception 
{
    //Fill list
    ArrayList<String> list = new ArrayList<>();
    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    for (int i = 0; i < 5; i++){
        String s = reader.readLine();
        list.add(s);
    }
    //Find largest string(s)
    String max = Collections.max(list , Comparator.comparing(s -> s.length()));
    ArrayList<string> maxLengthStrs = new ArrayList<string>;
    foreach (var str in list)
    {
       if(str.length == max)
       {
          maxLengthStrs.Add(str);
          System.out.println(str);
       }
    }
    //maxLengthStrs -- строка(и) с наибольшей длинной
}
READ ALSO
лишний символ при чтении из файла в set

лишний символ при чтении из файла в set

Яву учу первый месяц урывками, хочу разобратьсяЭто часть моего тестового задания чтобы поступить курсы по java

330
Java. Зеркальное отображение изображения

Java. Зеркальное отображение изображения

JFrame содержит две JPanelНеобходимо нарисовать овалы в левой панели, при чем то, что рисуется должно отображаться в правой панели

375
Как получить int 0000023?

Как получить int 0000023?

У меня есть задание нужно сделать метод который будет принимать значение и возвращать int

299
Вопрос по Navigation drawer activity

Вопрос по Navigation drawer activity

После создания Navigation drawer activity у нас есть 3 вертикальные полоски и, соответственно меню, а так же, справа, есть три точкиЗачем они нужны-то? Как...

333