@King_Of_Demons
Junior C# Developer

Как выести слова с одинаковой длиной в Java?

Надо вывести в консоль все слова с одинаковой длиной и с согласной первой буквой.
Вывод слов с согласной буквой сделал а вот длину так и не пойму как сделать. Я новичок в Java, так что кто может пожалуйста помогите.
import java.util.Scanner;
public class Subsequence {

    public static void main(String[] args)
    {
        Scanner scanner = new Scanner(System.in);
        System.out.println("Enter text please:");
        String text = scanner.nextLine();
        System.out.println(text);

        String[] strArr = text.split(" ");
        StringBuilder sb = new StringBuilder();
            for (String s : strArr) {

                char c = s.charAt(0);
                if ((c != 'a') && (c != 'o') && (c != 'i') && (c != 'u') && (c != 'e') && (c != 'y'))
                {
                    sb.append(s).append(" ");
                }
                System.out.println(sb.toString());
            }
    }
}
  • Вопрос задан
  • 482 просмотра
Пригласить эксперта
Ответы на вопрос 2
Chronicler
@Chronicler
Программист
Код за тебя писать не стану, но дам подсказку. И у String и у StringBuilder есть метод .length() который отдаёт длину.
Ответ написан
Комментировать
@Cheypnow
Фильтрация и группировка по кол-ву символов в строке:
String str = "aaa bbb eee ooooo yyyyy i ppp rrrr zzzzz";

        Predicate<String> isVowel = s -> s.startsWith("a")
                || s.startsWith("o")
                || s.startsWith("i")
                || s.startsWith("u")
                || s.startsWith("e")
                || s.startsWith("y");

        Map<Integer, List<String>> result = Arrays.stream(str.split(" "))
                .filter(s -> !isVowel.test(s))
                .collect(Collectors.groupingBy(String::length));

        System.out.println(result);


Вывод:
{3=[bbb, ppp], 4=[rrrr], 5=[zzzzz]}
Ответ написан
Ваш ответ на вопрос

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

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