0

初期文字列=61440 <CARRE> 150 381 188 419 </CARRE>

この文字列を配列に分割しました。配列には座標が含まれています

String[] coord = t.group(2).split(" ");

結果の出力は次のとおりです。

les coord est :150 381 188 419
i = 0 et sa valeur est :150
i = 1 et sa valeur est :381
i = 2 et sa valeur est :188
i = 3 et sa valeur est :419

forループを実行したもの:

formeCoord = new int[coord.length];
formeCoord[i] = Integer.parseInt(coord[i]);

ここで、すべての座標を含むint配列を含む出力を期待します。しかし、代わりに出力は次のとおりです。

Voici la valeur de i =0 et sa valeur int: 0
Voici la valeur de i =1 et sa valeur int: 0
Voici la valeur de i =2 et sa valeur int: 0
Voici la valeur de i =3 et sa valeur int: 419

これがforループです:

for (int i = 0; i<formeCoord.length; i++){
    System.out.println("Voici la valeur de i ="
        + i
        + "et sa valeur int: "
        + formeCoord[i]);
}

誰かが私が間違っていることを知っていますか?

4

2 に答える 2

6

追加するのではなく、反復ごとに新しい配列を作成しているようです。

おそらくあなたのコードは次のようになります:

for (int i = 0; i < coord.length; i++)
{
  formeCoord = new int[coord.length];
  formeCoord[i] = Integer.parseInt(coord[i]);
}

次のように変更する必要があります。

formeCoord = new int[coord.length];
for (int i = 0; i < coord.length; i++)
  formeCoord[i] = Integer.parseInt(coord[i]);
于 2013-02-26T15:51:57.900 に答える
2

次のコードをループしている場合...

formeCoord = new int[coord.length];
formeCoord[i] = Integer.parseInt(coord[i]);

最後に実行されたときを除いて、毎回formeCoordをリセットしています

于 2013-02-26T15:52:27.523 に答える