来自命令行参数的int数组

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

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

  1. import java.util.Arrays;
  2. public static void main(String[] args){
  3. int[] game = new int[9];
  4. for (int i = 0; i <= 8; i++)
  5. game[i] = Integer.parseInt(args[i]);
  6. System.out.println(Arrays.toString(game));
  7. }

运行示例:

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

mv1qrgav1#

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

  1. // creating an array of size 10
  2. int[] array = new int[10];
  3. // only filling up the first 8 elements
  4. for (int i = 1; i <= 8; i++) {
  5. array[i-1] = i;
  6. }
  7. // printing the full array
  8. for (int i = 0; i < array.length; i++) {
  9. System.out.print(i + " ");
  10. }
  11. System.out.println();

这将输出:

  1. 1 2 3 4 5 6 7 8 0 0

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

展开查看全部
inb24sb2

inb24sb22#

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

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

相关问题