2013-06-15 5 views
0

Я сделал массив символов в Java,Java Ошибка, требуется: обугливается [] найден символ

char[] letterGrade = { 'A','B','C','D','F'};

и пытаюсь ссылаться на элементы, как это,

letterGrade[0] 

Я получаю сообщение об ошибке, что говорит несовместимые типы

требуется: символ []

найдено: char

Я сделал это в другом месте в коде с массивом двойников, и он отлично работал. Почему он не работает с массивом символов?

Спасибо!

обновление от вашего комментария

public static void method() 
{ 
    double totalEarnedPoints = 1; 
    double totalPossiblePoints = 1; 

    double gradePer = 0.0; 
    gradePer = (totalEarnedPoints/totalPossiblePoints); 
    char[] letterGrade = { 'A', 'B', 'C', 'D','F'}; 
    if (gradePer >= gradeScale[0]) 
    { 
     letterGrade = char letterGrade(0); 
    } 
    else if (calcPercent >= gradeCutoffs[1] && calcPercent < gradeCutoffs[0]) 
    { 
     letterGrade= char letterGrade(1); 
    } 
} 
+4

символ [] = {letterGrade 'А', 'В', 'С', 'D', 'F'}; \t System.out.Println (letterGrade [0]); Это сработало для меня, какой контекст вы использовали? – MaheshVarma

+0

Опишите, где вы его используете? можете ли вы предоставить эту часть кода? –

+0

Да, у меня это тоже получилось. Я пытался заставить его вернуть элемент моего массива в результате выражения if else. Я не уверен, что мне нравится использовать линию печати System в результате для оператора if else, который имеет 5 возможных ответов - оценки A-F. – user2479429

ответ

0

Опубликованная образец работает, если ваша целевая переменная имеет тип CHAR, поэтому я предполагаю, что вы делаете что-то неправильно в задании. Возможно, вы вызываете функцию, которая требует char[] в том случае, если вы используете funct(letterGrade) без [0].

Если проблема не устранена, вы должны отправить еще немного кода.

Update

Я установил свой код, чтобы сделать его компиляции. конечно, я не знаю, что это такое, поэтому я должен был сделать некоторые предположения, но вы должны увидеть, как должен выглядеть синтаксис.

public static void method() 
{ 
    double totalEarnedPoints = 1; 
    double totalPossiblePoints = 1; 
    double gradeScale[] = {1, 2, 3}; 
    double gradeCutoffs[] = {1, 2, 3}; 
    double gradePer = 0.0; 
    char letter; 
    double calcPercent = 1; 

    gradePer = (totalEarnedPoints/totalPossiblePoints); 
    char[] letterGrade = { 'A', 'B', 'C', 'D','F'}; 
    if (gradePer >= gradeScale[0]) 
    { 
     letter = letterGrade[0]; 
    } 
    else if (calcPercent >= gradeCutoffs[1] && calcPercent < gradeCutoffs[0]) 
    { 
     letter = letterGrade[1]; 
    } 
    else 
     letter = 'F'; 

    System.out.println("Grade:"+letter); 
} 
+0

Я получил его для работы, просто ссылаясь на фактическое письмо с «System.out.println», но он также печатает 10 символов букв, цифр, символов - выглядит совершенно не связанным с строками кода, который я пытаюсь, и делать, печатать на экран? – user2479429

+0

Вы должны разместить несколько примеров кода. – Devolus

+0

'public void method { double gradePer = 0.0; gradePer = (totalEarnedPoints/totalPossiblePoints); char [] letterGrade = {'A', 'B', 'C', 'D', 'F'}; \t \t \t \t , если (gradePer> = gradeScale [0]) { letterGrade = символ letterGrade (0); } else if (calcPercent> = gradeCutoffs [1] && calcPercent user2479429

0

Это прекрасно работает для меня: символ [] = {letterGrade 'А', 'В', 'С', 'D', 'F'}; System.out.println (letterGrade [0]); Он выводит A

Поэтому я подозреваю, что это то, к чему вы его назначаете. Возможно, где-то у вас есть: letterGrade = letterGrade [A]

+0

Я пытаюсь реализовать его с помощью оператора if, char [] letterGrade = {'A', 'B', 'C', 'D', 'F'}; if (calcPercent> = gradeCutoffs [0]) { letterGrade = letterGrade [0]; – user2479429

1

«Я пытаюсь реализовать его, если заявление,

char[] letterGrade = { 'A', 'B', 'C', 'D','F'}; 
if (calcPercent >= gradeCutoffs[0]) { 
     letterGrade = letterGrade[0]; 
} 

Если вы делаете это Поскольку letterGrade имеет тип char[]. , вы не можете назначить его только символ. L.H.S. значения должно быть символом.

+0

Извините, что такое L.H.S.? – user2479429

0
required: char[] 

found: char 

этого типа ошибка возникает, если вы назначаете полукокс в полукоксе [] типе данных.

например:

char[] ch = letterGrade[0]; 
Смежные вопросы