2017-05-07 16 views
-2

私はArrayList(MatchingContent)に変換した最初の文字列配列(FileContent)を持っていました。3番目の要素ごとに合計を計算する - array java

String FileContent = "2017-04-03、11:25、2; 2017-04-02,11:30、8; 2017-04-03、14:42、9";

今、私はすべての第三の要素を反復処理し、それらの合計を計算する必要がありますが、セクションの下に動作していない:それは希望を意味し、ループ内sum

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]; 

    } 
+1

ようこそ!デバッグの助けを求める質問( "なぜこのコードは動作しないのですか?")には、目的の動作、_a特定の問題またはerror_を含める必要があります。明確な問題文がない質問は、他の読者にとって有用ではありません。参照:[最小限で完全で検証可能なサンプルの作成方法](http://stackoverflow.com/help/mcve) –

+0

ありがとうございますが、この宣言も機能しません。 Integer [] intarray = new Integer [MatchingContent.length]; – Savantes

+1

あなたはそれが機能していないことをどのように知っていますか? – shmosel

答えて

1

あなたが宣言(および初期化)されています前の値を上書き(または破棄)します。私たちがする必要があるのは、宣言を変更してループの外側で行うことです。そうすれば、以前の値は保持されます。

また、sumに結果を格納するので、Integer[] intarrayは不要で、個々の要素を別々に保存する必要はありません。下記の例は以下のとおりです。スタックオーバーフローへ

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]); 
} 
+0

ありがとうございますが、この宣言も機能しません:Integer [] intarray = new Integer [MatchingContent.length]; – Savantes

+0

@Savantesあなたはその宣言をもう必要としません。あなたが私の答えを見た場合、私はそのビットを冗長であったので削除しました –

+0

@DarshanMehta、スプーンフィードコードよりもあなたのコードで何が間違っているのかを説明すれば、作品ですか? –

関連する問題