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