4. Фильтр по фамилии #
Условие задачи: #
📌 Дан список строк, содержащих полные ФИО (фамилия, имя, отчество).
Нужно:
- Выделить фамилии
- Оставить только те, длина которых больше 3 символов
- Отсортировать результат в алфавитном порядке
- Вывести список
Код: #
import java.util.*;
public class Main {
public static void main(String[] args) {
var fios = List.of(
"Петров Петр Петрович",
"Иванов Иван Иванович",
"Алексеев Алексей Алексеевич",
"Васильев Василий Васильевич",
"Сидоров Сидор Сидорович",
"Николаев Николай Николаевич",
"Андреев Андрей Андреевич"
);
}
}
Спойлеры к решению
Подсказки
💡 Метод
💡
💡 Условие
💡
💡
split(" ")
разобьет строку на части (разделитель — пробел)💡
full.split(" ")[0]
достанет фамилию (первая часть)💡 Условие
surname.length() > 3
проверяет длину фамилии💡
sorted()
сортирует в алфавитном порядке💡
toList()
собирает поток в итоговый списокРешение
List<String> out = fios.stream()
.map(fio -> fio.split(" ")[0]) // берём фамилию
.filter(surname -> surname.length() > 3) // фильтруем
.sorted() // сортируем
.toList();