0

我有一个关于如何使用命令行参数输入二维数组的问题,请参阅代码:

                 ...
            double[] a = new double[args.length];
            for (int i = 0; i < args.length; i++) {
             a[i] = Double.parseDouble(args[i]);
                } 
              ...

上面的代码是一维数组的命令行输入,长度和元素可以用参数输入,但是,二维数组怎么做呢?谢谢。

4

2 回答 2

1

这实际上取决于数组的尺寸应该是多少。其中一个需要修复才能与您显示的代码相同。

示例:如果假设数组的第二维是x,则元素数可以计算为

int arrayLength = args.length / x;

然后,您可以像这样解析参数:

for (int i = 0; i < arrayLength; i++)
{
    for (int j = 0; j < x; j++)
    {
        a[i][j] = args[i * x + j];
    }
}

另一种更灵活的方法是在前两个参数中指定尺寸,然后使用以下代码

int dim1 = (int)args[0];
int dim2 = (int)args[1];

for (int i = 0; i < dim1; i++)
   for (int j = 0; j < dim2; j++)
       a[i][j] = args[2 + (i * dim1 + j)];
于 2013-10-28T13:51:44.387 回答
0

命令行参数只能是一维的。但是您可以添加参数来指定二维数组的大小,然后输入数组值。喜欢

<Dimension size m> <Dimension size n> <array value [0][0]> ... <array value [m][n]>
于 2013-10-28T13:51:51.090 回答