#java #methods
#java #методы
Вопрос:
Это часть моей Pig Latin. Это метод, мне нужно вернуть первую гласную слова. Если нет гласных, я хочу вернуть длину слова. Но у меня возникает ошибка, когда я возвращаю длину слова. Ошибка в «else» при возврате isVowel.
private static int indexOfVowel(String word) {
int index = 0;
for (int i = 0; i < word.length(); i )
if (isVowel(word.toLowerCase().charAt(i))) {
return index;
} else {
return isVowel(word.length());
}
}
private static boolean isVowel(char ch) {
switch (ch) {
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
case 'y':
return true;
default: return false;
}
}
}
Ответ №1:
Вы не можете передать целое число методу, который ожидает символ. Я думаю, что вы хотели, если вы нигде не нашли гласную в слове, вы хотите вернуть длину слова.
Поэтому вам нужно вернуть word.length() после завершения цикла for, т. Е. Вы просмотрели все символы в слове и не нашли гласную. Метод должен быть записан как :
private static int indexOfVowel(String word) {
int index = 0;
for (int i = 0; i < word.length(); i )
if (isVowel(word.toLowerCase().charAt(i)))
return index;
return word.length();
}
Комментарии:
1. Я думаю, также стоит отметить, что OP пытался вернуть логическое значение из метода с возвращаемым типом integer.
2. @CharlieArmstrong Да, я считаю, что OP скоро найдет его с этим ответом.