Работает корректно, но не выполняется условие "Программа должна выводить самую короткую строку на экран" :(
package com.javarush.task.task07.task0709;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
/*
Выражаемся покороче
*/
public class Solution {
public static void main(String[] args) throws Exception {
ArrayList<String> list = new ArrayList<>();
int[] len = new int[5];
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
//цикл, заносим строки в первый массив, а длину этих строк во второй массив.
for (int i=0; i<5; i++) {
String s = reader.readLine();
list.add(s);
int l = s.length();
len[i] = l;
}
//Создаем клон второго массива.
int[] lenCopy = Arrays.copyOf(len, len.length);
//Сортируем второй массив по-возрастающей.
Arrays.sort(lenCopy);
//Берем нулевое значение как минимальное.
int min = lenCopy[0];
//Запускаем цикл сравнения значений из второго массива с минимумом
//если значения равны - печатаем из первого массива строку с таким же индексом.
for (int i=1; i<5; i++) {
int znach = len[i];
if (min==znach) {
System.out.println(list.get(i));
}
}
}
}