0

ファイルから数値を入力する配列を使用しています。中点の数字を削除し、中点の後の他のすべての数字を左にシフトしてスペースを埋める必要があります。これは、配列を埋めるのに十分な数値が配列にない場合を除いて機能するため、最後の数値を 1 回ではなく 2 回出力し続けます。ファイルに数字が残っていないときに印刷を停止するにはどうすればよいですか。(これが複雑に聞こえる場合は申し訳ありません)私のコードは以下です

        for (int i = mid; i < array.length -1 ; i++){

            array[i] = array[i+1];

        }
4

3 に答える 3

1

最後の数字を1回ではなく2回出力し続けるだけです

要素をシフトした後、最後の要素は使用されなくなったため、おそらく実際に削除する必要があります。これには、 を使用できますArrays.copyOfRange()

于 2013-02-28T17:06:16.147 に答える
1

これが宿題でない限り、車輪を再発明しないでください。 java.utils.ArrayListすでにこれを行っています。

于 2013-02-28T17:19:44.590 に答える
0

のループを実行しますarray.length -2。配列内のあなたLastSecond Lastアイテムが同じだからです。それが2回書いている理由です。

于 2013-02-28T17:20:46.627 に答える