这是在Eclipse中。我编写了这段代码,用于对String
中的每个ArrayList
元素求和,然后返回总和。问题是每次运行方法时都会返回0.0,并添加字符串。
我不明白为什么在第6行,循环不计算每个字符串元素的长度并将值存储到sum1
。
public static double q1(ArrayList<String> input1) {
ArrayList<String> array1 = new ArrayList<String>();
double sum1 = 0;
for (String s1: array1) {
sum1 += s1.length(); //Line 6
}
return Math.pow(sum1, 3);
}
答案 0 :(得分:2)
从提供的代码和您提供给我们的信息来看,这就是我认为正在发生的事情。您没有使用字符串数据填充ArrayList array1对象以进行循环。默认构造函数默认为空列表,您可以通过停止并查看
在eclipse中的调试器中对此进行测试int test = array1.size();
这将返回一个数组大小的int。有关数组列表的所有深入信息都可以在arrayList java doc上找到。 https://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html
修复它试试这个:
ArrayList<String> array1 = new ArrayList<String>();
array1.add("put string 1 here");
array1.add("put string2 here");
等等你可以做这个部分:
double sum1 = 0;
for (String s1: array1){
sum1 += s1.length(); //Line 6
}
return Math.pow(sum1, 3);
答案 1 :(得分:1)
您创建了一个新的空列表,并按其元素进行迭代(没有)。如果此方法必须计算您想要的内容,请使用:
public static double q1(ArrayList<String> input1){
double sum1 = 0;
for (String s1: input1){
sum1 += s1.length(); //Line 6
}
return Math.pow(sum1, 3);
}