为什么我的方法不会将每个数组元素的长度存储到我的变量中?

时间:2018-02-18 00:32:23

标签: java

这是在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);
}

2 个答案:

答案 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);
}