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我改变了句子,说这是一种有效的方式,所以还有你说的其他方式。