public static int countVowels(String[] ar1) { // this method counts
int vowelPerWord = 0;
int totalWordsWithThreeVowels = 0;
char[] ar2 = new char[] { 'a', 'e', 'i', 'u', 'y', 'o' };
for (int i = 0; i < ar1.length; i++) {
vowelPerWord = 0;
for (int j = 0; j < ar1[i].length(); j++) {
for (int k = 0; k < ar2.length; k++) {
if (ar2[k] == (ar1[i].charAt(j))) {
vowelPerWord++;
}
}
}
if (vowelPerWord >= 3) {
totalWordsWithThreeVowels++;
}
}
return totalWordsWithThreeVowels;
}
EDIT
Хорошо, теперь я исправил ошибку и отредактировал имена переменных, чтобы сделать их более понятными.хотя это O (n * m), я полагаю (где n - это количество строк, а m - количество символов в самой длинной строке) (не очень хорошая сложность), он выполняет свою работу, ar1 в этом случае - ваш вводстроки, ar2 - это только те гласные, которые существуют.
, поэтому вы просматриваете каждую строку в ar1 и устанавливаете "vowelPerWord" в 0, просматриваете каждый символ в каждой строке и проверяете, является ли это гласным, увеличивайте vowelPerWordна 1. в конце, после того, как вы прошли каждый символ этой строки, вы проверяете, было ли 3 или более гласных, если это так, увеличьте totalWordsWithThreeVowels, который в конце возвращается.