@Alexzatey

Нужно получить слова в которых первая буква — согласная и вывести их одним предложением через пробел. НО как это сделать через Stream API?

Стало любопытно это сделать через потоки. Пишу приведенный код, но знаю, что он неправильный. Прошу строго не судить и подсказать работающее решение именно на стримах.
import java.util.stream.Stream;
import static java.lang.Character.compare;

public class jska {
    public static void main(String[] args) {

        Character[] kl = {'А', 'а', 'О', 'о', 'ы', 'Ы', 'у', 'У', 'e', 'E', 'э', 'Э'};
        String[] a = {"абра", "кадабра", "интерес"};

        Stream.iterate(0, i -> i + 1).limit(a.length)
                .filter(i -> compare(kl[i], a[i].charAt(0)) == 0)
                .forEach(System.out::println);

    }
}
  • Вопрос задан
  • 288 просмотров
Решения вопроса 1
roswell
@roswell
и швец, и жнец, и на дуде игрец
import java.util.stream.Stream;

public class Main {

    public static void main(String... args) {
        String vowels = "аеёиоуыэюя";
        String[] words = {"абра", "кадабра", "интерес", null, "Проверка", "ещё", "логика", "", "Ёж", "Сигнал"};
        Stream.of(words)
            .filter(word -> word != null && word.length() > 0 && !vowels.contains(word.substring(0, 1).toLowerCase()))
            .forEach(word -> System.out.print(word + " "));
    }

}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы