Получаю загадочную ошибку в моей простой Java-программе, сравнивая char [i] со строкой - PullRequest
0 голосов
/ 11 мая 2010
public static void ejemplosString(String palabra){
        char[] letras = palabra.toCharArray();
        int contadorVocales = 0;

        for (int i = 0; i < letras.length; i++) {            
            if (char[i] == 'a') {
                contadorVocales++;                
            }

            if (char[i] == "e") {
                contadorVocales++;                
            }

            if (char[i] == "i") {
                contadorVocales++;                
            }

            if (char[i] == "o") {
                contadorVocales++;                
            }

            if (char[i] == "u") {
                contadorVocales++;                
            }
        }
    }

Получение ошибки в каждом операторе If. Любое руководство?

Даже при смене гласных на одинарные кавычки я все равно получаю эту ошибку:

Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - unexpected type
  required: value
  found:    class
        at practico1.Main.ejemplosString(Main.java:64)
        at practico1.Main.main(Main.java:34)
Java Result: 1

Ответы [ 5 ]

6 голосов
/ 11 мая 2010

Ваше имя переменной letras, а не char

3 голосов
/ 11 мая 2010

Строки используют двойные кавычки ", но Символы используют одинарные кавычки '. Поскольку вы сравниваете символы, вам нужно переключиться на одинарные кавычки.

Кроме того, char[i] не является допустимым Java. Я думаю, что вы имели в виду letras[i]

3 голосов
/ 11 мая 2010

Измените двойные кавычки вокруг ваших букв на одинарные кавычки. Похоже, что 'a' является правильным (это символьный литерал), но все остальные буквы ("e", "i" и т. Д.) Являются строковыми литералами.

0 голосов
/ 11 мая 2010

Навин уже дал правильный ответ

Я хотел бы добавить, что вы также можете использовать

Заявление о переключении Java

для реализации этой функции

0 голосов
/ 11 мая 2010

Разве вы не должны использовать метод .equals() для сравнения строк?

...