package com.javarush.task.task07.task0709;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
/*
Выражаемся покороче
1. Создай список строк.
2. Считай с клавиатуры 5 строк и добавь в список.
3. Используя цикл, найди самую короткую строку в списке.
4. Выведи найденную строку на экран.
5. Если таких строк несколько, выведи каждую с новой строки.
Требования:
1. Объяви переменную типа список строк и сразу проинициализируй ee.
2. Программа должна считывать 5 строк с клавиатуры и записывать их в список.
3. Программа должна выводить самую короткую строку на экран.
4. Если есть несколько строк с длиной равной минимальной, то нужно вывести каждую из них с новой строки.
*/
public class Solution {
public static void main(String[] args) throws Exception {
//напишите тут ваш код
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
ArrayList<String> list = new ArrayList<>();
for (int i = 0; i < 5; i++) {
list.add(reader.readLine());
}
String min = "";
for (String n : list) {
if (n.length() < min.length()) {
min=n;
}
}
for (String k : list) {
if (min.length() == k.length()) {
System.out.println(k);
}
}
}
}
Евгений
37 уровень
Почему во втором цикле условие if (n.length() < min.length()) всегда false, если в переменную записывается строка n,отличная от нуля?
Архивный
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Руслан Full Stack Developer в novacom
14 августа 2019, 06:52решение
вот тут у тебя есть String min = ""; длинна его 0 и ты спрашиваешь всегда есть у тебя меньше этой строки и тебе ответ всегда false так как меньше min нету ничего
+2
Евгений
14 августа 2019, 06:58
Похоже догнал, у меня в эту переменную, строка никогда не запишется, а я сижу голову ломаю, почему строки не выводятся)
Спасибо за ответ.
0