Задача:
Как правильно вывести только самую длинную строку из списка и те - которые будут равны ее длине?
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));
}
}
}
}
У меня получилось такое решение:
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;
что--то вроде такого:
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 -- строка(и) с наибольшей длинной
}
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Яву учу первый месяц урывками, хочу разобратьсяЭто часть моего тестового задания чтобы поступить курсы по java
JFrame содержит две JPanelНеобходимо нарисовать овалы в левой панели, при чем то, что рисуется должно отображаться в правой панели
У меня есть задание нужно сделать метод который будет принимать значение и возвращать int
После создания Navigation drawer activity у нас есть 3 вертикальные полоски и, соответственно меню, а так же, справа, есть три точкиЗачем они нужны-то? Как...