Самая короткая строка

  • 13
  • Недоступна
1. Создай список строк. 2. Считай с клавиатуры 5 строк и добавь в список. 3. Используя цикл, найди самую короткую строку в списке. 4. Выведи найденную строку на экран. 5. Если таких строк несколько, выведи каждую с новой строки.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (11)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Grock
Уровень 13
около 6 часов назад
А я создал Список, определил локальную строковую переменную метода maun для занесения в нее информации о количестве символов в минимальной строке, дополнил Список с помощью цикла for данными с клавиатуры и в этом же цикле выявил минимальное количество символов в строке Списка. Далее в следующем цикле вывел все строки Списка, количество символов в которых равно минимальному.
Nikita Prokaev
Уровень 21, Russian Federation
28 июня, 15:41
Зная, что способов решения множество, напишу, как решил я. Может кому-то зайдет такой вариант или поможет. В main объявил глобальную переменную int minLength с максимально возможным (Integer.MAX_VALUE) значением. Далее решение через 2 цикла. В первом цикле заносим значение в список с консоли и здесь же сразу считаем длину строки. Если она меньше, чем текущее значение minLength - присваиваем ей новое значение, равное длине текущей строки. И так до конца списка. Во втором цикле также прогоняем все записанные строки и проверяем, если длина строки равна теперь уже минимальной длине строки (minLength), то выводим на экран.
Anton
Уровень 24, Москва, Russian Federation
29 апреля, 10:02
Отсортировать объекты по ключу можно с помощью интерфейса Comparator:
list.sort(Comparator.comparingInt(o -> o.length()));
или более короткая запись:
list.sort(Comparator.comparingInt(String::length));
MRamazanov System Engineer
7 февраля, 20:04
Очень интересно сделано..если сравнить длину минимального элемента через equals то не проходит валидацию, если через length то норм всё)) Наверное логически так и надо
boogie
Уровень 43, Москва, Russian Federation
13 декабря 2021, 15:01
может кому поможет - у меня не проходила валидация по второму пункту, так как я менял порядок элементов в списке
PERFORATTOR
Уровень 19, Russian Federation
22 ноября 2021, 20:14
int minStringLength = strings.get(0).length(); Может кто объяснить, зачем перед циклом нужно присваивать длину первой ячейки листа?
Johnny
Уровень 30, Санкт-Петербург, Russian Federation
14 декабря 2021, 17:31
Записываем в переменную int minStringLength длинну первой попавшейся строки из ArrayList, и в цикле сравниваем её с остальными. Если попадётся строка короче перезаписываем её значение length в int minStringLength. Таким образом находим длинну самой короткой строки, а строки сохраненные в ArrayList остаются невредимыми и на своих местах.
Anton
Уровень 24, Москва, Russian Federation
28 декабря 2021, 11:10
Не понимаю зачем команда JavaRush использует в задачах это "механическое" сравнение для поиска min/max. Есть же готовые методы Collections.min(list), Collections.max(list) ну или sort.
FuryCydonian
Уровень 22, Санкт-Петербург, Russian Federation
27 января, 21:45
Затем, чтоб руками умел делать это. Лучше уметь, чем не уметь. Методы полезные потом все равно же даются.
Aleksei Reinsalu
Уровень 19, Таллинн, Эстония
11 ноября 2021, 09:06
Сортировал длины слов.
Raviletti
Уровень 37, Винтерфелл, Вестерос
4 июня 2021, 23:06
А почему список обязательно надо было создавать в методе main? Когда был за его пределами, в идее все работало, но решение не принималось( Это тонкости проверки, или есть принципиальная разница?