【问题标题】:Command line input for two D arrays in JavaJava中两个D数组的命令行输入
【发布时间】:2013-10-28 13:47:08
【问题描述】:

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

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

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

【问题讨论】:

标签: java arrays command-line


【解决方案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)];

【讨论】:

  • 嗨,Thorsten,感谢您的帖子,我尝试了 args[i*x+j],它有效,但您是如何想到这个设计的?是关于算法还是逻辑数学?
  • 好吧,如果你仔细想想,这很明显 :-) 此外,任何曾尝试从底层字节缓冲区访问图像像素的人都知道这一点。
【解决方案2】:

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

<Dimension size m> <Dimension size n> <array value [0][0]> ... <array value [m][n]>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-31
    • 2010-11-28
    • 1970-01-01
    • 2011-06-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多