我有一个初始的String数组(FileContent),我已将其转换为ArrayList(MatchingContent)。
String FileContent =“2017-04-03,11:25,2; 2017-04-02,11:30,8; 2017-04-03,14:42,9”;
现在,我需要迭代每个第3个元素并计算它们的总和,但是下面的部分不起作用:
Integer[] intarray=new Integer[MatchingContent.length];
for (int i=0; i<MatchingContent.length; i+=3)
{
int sum = 0;
intarray [i] = Integer.parseInt(MatchingContent[i]);
sum = sum + intarray[i];
}
答案 0 :(得分:1)
你在循环中声明(并初始化)sum
,这意味着它会在每次迭代中初始化,覆盖(或丢弃)前一个值。我们需要做的是更改声明并在循环外执行,这样,前一个值将被保留。
另外,由于我们将结果存储在Integer[] intarray
中,因此您不需要sum
,因此,不需要单独存储单个元素。以下是示例:
int sum = 0;
for (int i=0; i<MatchingContent.length; i++){
if(i % 3 == 0) {
sum += Integer.parseInt(MatchingContent[i]);
}
}
或者
int sum = 0;
for (int i=0; i<MatchingContent.length; i+=3){
sum += Integer.parseInt(MatchingContent[i]);
}