我对如何使用数组和方法有疑问。在我的情况下,我正在尝试编写一个方法来计算并显示给定特定字母时的平均值,但字母是在数组中。当我调用我的方法时,它会显示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
}
}
答案 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);
}
}