Java найти самую длинную строку

Я вообще не понимаю, что происходит

Решение не моё. Искал в интернете объяснения — нашел это решение. Может кто -нибудь объяснить подробно мне 24 и 25 строчку. list.get(0).length(); — это что за покемон!? что мы такое делаем? list.length — это длинна массива. что такое — get(0)?? for(String s : list) — что значит этот цикл?

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

Если есть несколько строк с длиной равной максимальной, то нужно вывести каждую из них с новой строки.

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

Источник

Как найти самую длинную строку в List?

Подскажите, пожалуйста, способ нахождения самой длинной строки в ArrayList.

Читайте также:  Html pretty print notepad

Ответы (2 шт):

Собссн банальный цикл и сравнение значения с предыдущем вполне спасёт:

ArrayList Str = new ArrayList(); Str.add("Jim Bob"); Str.add("Bobby Jones"); Str.add("Rob Stiles"); int largestString = Str.get(0).length(); int index = 0; for(int i = 0; i < Str.size(); i++) < if(Str.get(i).length() >largestString) < largestString = Str.get(i).length(); index = i; >> System.out.println("Index " + index + " "+ Str.get(index) + " " + "is the largest and is size " + largestString); 

Вариант с Java8 (использовать java.util.Collections.max )

String max = Collections.max(StrList, Comparator.comparing(s -> s.length())); 

Еще вариант с Collections, но до Java8

String max = Collections.max(Str, new Comparator() < @Override public int compare(String o1, String o2) < return o1.length() - o2.length(); >>); System.out.println(max); 

Collections.max — принимает на вход коллекцию (в данном случае строк) и компаратор, в котором должна быть описана логика сравнения элементов коллекции.

ArrayList strings = new ArrayList(); BufferedReader r = new BufferedReader(new InputStreamReader(System.in)); for (int i = 0; i < 5; i++); < strings.add(r.readLine()); >int m = strings.get(0).length(); for (String s : strings) if (s.length() > m) m = s.length(); for (String s : strings) if (s.length() == m) System.out.println(s); 

Источник

P0huber / LongestString.java

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

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

Источник

Java найти самую длинную строку

Спасибо, Ваши сообщения помогли. Вот только непонятно, вроде программа работает правильно, но проверку на сайте все равно не проходит.

Возник кстати вопрос, add — это добавить в определенное место в ArrayList, а что такое тогда ArrayList.set(i,s)?

package com.* import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; /* Самая длинная строка 1. Создай список строк. 2. Считай с клавиатуры 5 строк и добавь в список. 3. Используя цикл, найди самую длинную строку в списке. 4. Выведи найденную строку на экран. 5. Если таких строк несколько, выведи каждую с новой строки. */ public class Solution < public static void main(String[] args) throws Exception < //напишите тут ваш код BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); ArrayListlist1 = new ArrayList(); // заполняемый пользователем массив ArrayList list2 = new ArrayList(); // массив с самыми длинными строками for (int i = 0; i < 5; i++) // заполняем 1 массив < String s = reader.readLine(); list1.add(i, s); >int n = 0; String max = list1.get(0); // устанавливаем самую длинную строку = 1 строке for (int i = 0; i < list1.size(); i++) < String a = list1.get(i); if (max.length() < a.length()) // если появляется новая самая длинная строка < for (int j = 0; j < i; j++) < list2.remove(j); // удаляем предыдущие значения строк >max = a;/* list2.set(n,a);*/ list2.add(0, a); // добавляем в начало. n=1; // количество строк которое будем выводить > if (max.length() == a.length()) // если находим ещё одну строку с таким же количеством символов как у самой длинной < max = a;/* list2.set(n,a);*/ list2.add(0, a); n = n + 1; // увеличиваем количество строк для вывода на 1. >> for (int i = 0; i < n; i++) // вывод < System.out.println(list2.get(i)); >> >

Вот например есть неплохая ссылка по ArrayList
http://developer.alexanderklimov.ru/. /arraylist.php
А по поводу того, что мой код не проходит проверку. Даже не знаю. Как вариант не реализован ввод слов с клавиатуры для заполнения списка.

«Keep it simple» — придерживайтесь простоты!
Уильям Оккам — «Не следует множить сущее без необходимости»
Сложность — враг простоты и удобства!

Источник

Самая длинная строка в файле — как найти

Какая строка в массиве встретится раньше: самая короткая или самая длинная
1. Создай массив строк. 2. Добавь в него 10 строчек с клавиатуры. 3. Узнай, какая строка в.

Сформировать строки таким образов, что бы первой была самая короткая строка, а последней самая длинная
задан строка. сформировать строки таким образов что бы первой была самая короткая строка а.

Самая длинная строка в TStringList
Доброе утро! что есть: 1. TStringList *krsod= new TStringList(); в этом списке есть строки и.

Форматирование таблицы если не известна самая длинная строка
Добрый день. Что нужно делать в таком случае, чтобы таблица оставалась всегда ровной? Для.

Лучший ответ

Сообщение было отмечено 19651 как решение

Решение

1. есть переменная int max — это максимальный размер найденной строки
2. есть переменная String — это сама максимальная строка
3. читаем файл построчно
4. если строка, которую читаем, больше по размеру предыдущей, то записываем длину в max и строку в String

Добавлено через 5 минут

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; public class Task012 { public static final String PATH = "test.txt"; public static void main(String[] args) { int max = 0; String offer = ""; try (BufferedReader br = new BufferedReader(new FileReader(PATH))) { String line; while ((line = br.readLine()) != null) { if (line.length() > max) { max = line.length(); offer = line; } } } catch (IOException e) { e.printStackTrace(); } System.out.printf("Самая большая строка в файле [%s]:%sКол-во символов: %d;%sВид: %s;", PATH, System.lineSeparator(), max, System.lineSeparator(), offer); } }

Источник

Оцените статью