Java - Escribir un contador de sílabas basado en especificaciones

Especificación para una sílaba:

Cada grupo de vocales adyacentes (a, e, i, o, u, y) cuenta como una sílaba (por ejemplo, la "ea" en "real" contribuye con una sílaba, pero la "e ... a" en " regal "cuenta como dos sílabas). Sin embargo, una "e" al final de una palabra no cuenta como una sílaba. Además, cada palabra tiene al menos una sílaba, incluso si las reglas anteriores dan un recuento de cero.

Mi método countSyllables:

public int countSyllables(String word) {
    int count = 0;
    word = word.toLowerCase();
    for (int i = 0; i < word.length(); i++) {
        if (word.charAt(i) == '\"' || word.charAt(i) == '\'' || word.charAt(i) == '-' || word.charAt(i) == ',' || word.charAt(i) == ')' || word.charAt(i) == '(') {
            word = word.substring(0,i)+word.substring(i+1, word.length());
        }
    }
    boolean isPrevVowel = false;
    for (int j = 0; j < word.length(); j++) {
        if (word.contains("a") || word.contains("e") || word.contains("i") || word.contains("o") || word.contains("u")) {
            if (isVowel(word.charAt(j)) && !((word.charAt(j) == 'e') && (j == word.length()-1))) {
                if (isPrevVowel == false) {
                    count++;
                    isPrevVowel = true;
                }
            } else {
                isPrevVowel = false;
            }
        } else {
            count++;
            break;
        }
    }
    return count;
}

El método isVowel que determina si una letra es una vocal:

public boolean isVowel(char c) {
        if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u') {
            return true;
        } else {
            return false;
        }
    }

Según un colega, esto debería dar como resultado 528 sílabas cuando se usa eneste text, pero parece que puedo igualar eso y no sé cuál de nosotros es correcto. Ayúdame a desarrollar mi método en el algoritmo correcto o ayuda a mostrar que esto es correcto. Gracias

Respuestas a la pregunta(14)

Su respuesta a la pregunta