Как посчитать слоги в слове, используя Java? - PullRequest
0 голосов
/ 05 мая 2020

Я разрабатываю студенческий проект и мне нужно написать функцию для подсчета слогов в словах. Функция похожа на long countSyllables (String word).

Как посчитать слоги в слове с помощью Java? Есть предложения?

Предусмотрены следующие правила:

  1. Чтобы подсчитать количество слогов, вы должны использовать буквы a, e, i, o, u, y в качестве гласных.

  2. Подсчитайте количество гласных в слове.

  3. Не считайте двойные гласные (например, «дождь» имеет 2 гласных, но всего 1 слог)

  4. Если последняя буква в слове - «е», не считайте это гласным (например, «сторона» - это 1 слог)

  5. Если в конце окажется, что слово содержит 0 гласных, то считайте это слово односложным.

Я уже писал функцию, но Я считаю это не оптимальным. Поэтому я просто хотел бы увидеть другие возможные решения. Если есть.

Полное описание задачи: https://hyperskill.org/projects/39/stages/208/implement

Текущая реализация:

public static int countSyllables(final String word) {
    return max(1, word.toLowerCase()
            .replaceAll("e$", "")
            .replaceAll("[aeiouy]{2}", "a")
            .replaceAll("[^aeiouy]", "")
            .length());
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...