使用数组和方法

时间:2014-01-09 19:21:59

标签: java arrays methods

我对如何使用数组和方法有疑问。在我的情况下,我正在尝试编写一个方法来计算并显示给定特定字母时的平均值,但字母是在数组中。当我调用我的方法时,它会显示incompatible types: String[] cannot be converted to String。我怎样才能解决这个问题?任何帮助将不胜感激。以下是我的代码:

public class Tester{
public double letterAverage(String letterGrade){
    double letterAverage = 0;
    if(letterGrade == "a"){
        System.out.println(99 / 4);
    }else if(letterGrade == "b"){
        System.out.println(88 / 2);
    }else{
        System.out.println(77 / 3);
    }
    return letterAverage;
}
public static void main(String args[]){
    String[] letters = {"a", "b", "c"};
    letterAverage(letters); // error
}
}

4 个答案:

答案 0 :(得分:1)

你的letterAverage方法期待一个String,但你传递的是一个字符串数组(String [])。

您需要更改方法,使其接受字符串数组,并且可能会更改实现以解决此问题。

答案 1 :(得分:1)

伙计,试试这个

String[] letters = {"a", "b", "c"};
for (String s : letters)
     letterAverage(s); 

并改变这个

if(letterGrade == "a")

到这个

if("a".equals(letter))

这是使用equals()

比较字符串的有效方法

答案 2 :(得分:0)

public static void main(String args[]){
    String[] letters = {"a", "b", "c"};
    for (int i = 0; i < letter.length; i++) {
        letterAverage(letters[i]); // error
    }
}

答案 3 :(得分:0)

关于如何使用您的方法已有很好的答案。但是,如果您输入的是成绩列表,则可能需要以相同顺序返回平均值列表。为此,您可以执行以下操作:

public class Tester {
    public static double[] letterAverage(String... letterGrades) {
        double[] averages = new double[letterGrades.length];

        for (int i = 0; i < letterGrades.length; i++) {
            String letterGrade = letterGrades[i];
            double letterAverage = 0;
            if (letterGrade == "a") {
                System.out.println(99 / 4);
            } else if (letterGrade == "b") {
                System.out.println(88 / 2);
            } else {
                System.out.println(77 / 3);
            }
            averages[i] = letterAverage;
        }
        return averages;
    }

    public static void main(String args[]) {
        String[] letters = { "a", "b", "c" };
        double[] averages = letterAverage(letters);
    }
}