Я разрабатываю студенческий проект и мне нужно написать функцию для подсчета слогов в словах. Функция похожа на long countSyllables (String word).
Как посчитать слоги в слове с помощью Java? Есть предложения?
Предусмотрены следующие правила:
Чтобы подсчитать количество слогов, вы должны использовать буквы a, e, i, o, u, y в качестве гласных.
Подсчитайте количество гласных в слове.
Не считайте двойные гласные (например, «дождь» имеет 2 гласных, но всего 1 слог)
Если последняя буква в слове - «е», не считайте это гласным (например, «сторона» - это 1 слог)
Если в конце окажется, что слово содержит 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());
}