来自命令行参数的int数组

cnjp1d6j  于 2021-07-03  发布在  Java
关注(0)|答案(2)|浏览(302)

我试图转换int数组中的命令行参数,但数组末尾显示为“0”。我该怎么修?

import java.util.Arrays;

public static void main(String[] args){
        int[] game = new int[9];
        for (int i = 0; i <= 8; i++)
        game[i] = Integer.parseInt(args[i]);
        System.out.println(Arrays.toString(game));
}

运行示例:

$ java edu.kit.informatik.TicTacToe 5 6 4 1 2 3 7 8 9
[5, 6, 4, 1, 2, 3, 7, 8, 9, 0]
mv1qrgav

mv1qrgav1#

当你创建一个新的 int[] 数组,它的初始内容都是零。如果你用比它长的更少的数字来填充它,你会看到结尾没有被覆盖的零。

// creating an array of size 10
int[] array = new int[10];

// only filling up the first 8 elements
for (int i = 1; i <= 8; i++) {
    array[i-1] = i;
}

// printing the full array
for (int i = 0; i < array.length; i++) {
    System.out.print(i + " ");
}
System.out.println();

这将输出:

1 2 3 4 5 6 7 8 0 0

最后两个零只是没有设置为其他值的元素。

inb24sb2

inb24sb22#

我已经测试了你的代码,列表末尾没有“0”。我建议你用这个 args.length 用于处理各种参数计数。

public static void main(String[] args) {
        int[] game = new int[args.length];
        for (int i = 0; i < args.length; i++)
            game[i] = Integer.parseInt(args[i]);
        System.out.println(Arrays.toString(game));
    }

相关问题