Метод Pig latin

#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 скоро найдет его с этим ответом.