Java 使用数组和方法

Java 使用数组和方法,java,arrays,methods,Java,Arrays,Methods,我有一个关于如何使用数组和方法的问题。在我的例子中,我试图编写一个方法,当给定一个特定的字母时,计算并显示平均值,但这些字母是在一个数组中。当我调用我的方法时,它说不兼容的类型:String[]无法转换为String。我怎样才能解决这个问题?任何帮助都将不胜感激。下面是我的代码: public class Tester{ public double letterAverage(String letterGrade){ double letterAverage = 0; if(le

我有一个关于如何使用数组和方法的问题。在我的例子中,我试图编写一个方法,当给定一个特定的字母时,计算并显示平均值,但这些字母是在一个数组中。当我调用我的方法时,它说
不兼容的类型:String[]无法转换为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
}
}

您的letterAverage方法需要一个字符串,但您正在传递一个字符串数组(字符串[])

您需要更改您的方法,使其接受字符串数组,并且可能还需要更改实现以考虑这一点。

publicstaticvoidmain(stringargs[]){
public static void main(String args[]){
    String[] letters = {"a", "b", "c"};
    for (int i = 0; i < letter.length; i++) {
        letterAverage(letters[i]); // error
    }
}
字符串[]字母={a”,“b”,“c”}; for(int i=0;i
伙计,试试这个

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

if(letterGrade == "a")
对此

if("a".equals(letter))

这是一种比较字符串的有效方法,使用
equals()

关于如何按原样使用方法,已经有了很好的答案。但是,如果您输入的是一个分数列表,那么您可能希望以相同的顺序返回一个平均值列表。为此,您可以执行以下操作:

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);
    }
}
公共类测试器{
公共静态双[]字母平均值(字符串…字母等级){
双[]平均值=新双[字母等级.长度];
对于(int i=0;i
1。不要使用数组,请使用集合(在本例中为ArrayList)2。公共双字母平均值(String[]letterGrade)如果要传递数组,但正文错误3。首先写一个算法,然后用你选择的语言来实现——你在这里缺少算法。是的,谢谢@rgetman,首先使用
equals()
,使用
String
equals
方法来比较字符串值,而不是
=
操作符。第二,传递一个字符串数组,其中需要一个字符串。改为传递一个字符串。@ElliottFrisch我改变了句子,说这是一种有效的方式,所以还有你说的其他方式。