Java Error,required:char [] found char

时间:2013-06-15 06:42:36

标签: java arrays character

我用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 个答案:

答案 0 :(得分:1)

“我正在尝试用if语句实现它,

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

如果你这样做的话。 由于letterGrade属于char[]类型,因此您无法仅使用char分配它。 L.H.S.值必须是char。

答案 1 :(得分:0)

如果您的目标变量的类型为char,则发布的示例有效,因此我假设您在分配中做错了。也许您正在调用一个需要char[]的函数,如果没有funct(letterGrade),则应使用[0]

如果您的问题仍然存在,则应发布更多代码。

<强>更新

我修复了你的代码以使其编译。当然我不知道应该是什么,所以我不得不做一些假设,但是你应该看看语法应该如何。

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);
}

答案 2 :(得分:0)

这适用于我:     char [] letterGrade = {'A','B','C','D','F'};     的System.out.println(letterGrade [0]); 它输出A

所以我怀疑这是你分配给它的。 也许你在某个地方:     letterGrade = letterGrade [A]

答案 3 :(得分:0)

required: char[]

found: char 

如果要在char []数据类型中指定char,则会发生此类错误。

前:

char[] ch = letterGrade[0];