Java将命令行参数(args[])解析为int[][]类型

标签 java arguments line args commando

有人可以告诉我如何将以下内容解析为 int[][] 类型。这是输入到 java args "1,2;0,3 3,4;3,4 " 中的数字结构(前 4 个数字应表示一个矩阵,最后一个数字应表示一个矩阵) 4 个数字;所以我需要将两者解析为 int[][] ),但是我如何才能将其解析为 int[][] 类型? p>

我猜第一件事是:

String[] firstmatrix = args[0].split(";");
String[] rowNumbers = new String[firstmatrix.length];
for(int i=0; i< firstmatrix.length; i++) {   
    rowNumbers = firstmatrix[i].split(",");

 }

但我无法让它发挥作用 -.-

编辑:首先感谢您的帮助。但我应该提到异常处理不是必需的。另外,我只允许使用 java.lang 和 java.io

编辑2.0:谢谢大家的帮助!

最佳答案

public static void main(String[] args) throws IOException {
        List<Integer[][]> arrays = new ArrayList<Integer[][]>();

        //Considering the k=0 is the show, sum or divide argument
        for(int k=1; k< args.length; k++) {
            String[] values = args[k].split(";|,");
            int x = args[k].split(";").length;
            int y = args[k].split(";")[0].split(",").length;
            Integer[][] array = new Integer[x][y];
            int counter=0;
            for (int i=0; i<x; i++) {
                for (int j=0; j<y; j++) {
                    array[i][j] = Integer.parseInt(values[counter]);
                    counter++;
                }
            }
            //Arrays contains all the 2d array created
            arrays.add(array); 
        }
        //Example to Show the result i.e. arg[0] is show
        if(args[0].equalsIgnoreCase("show"))
            for (Integer[][] integers : arrays) {
                for (int i=0; i<integers.length; i++) {
                    for (int j=0; j<integers[0].length; j++) {
                        System.out.print(integers[i][j]+" ");
                    }
                    System.out.println();
                }
                System.out.println("******");
            }
    }

输入

show 1,2;3,4 5,6;7,8

输出

1 2 
3 4 
******
5 6 
7 8 

输入,用于带有变量的 inpt 一个 3*3 一个 2*3 矩阵

show 1,23,45;33,5,1;12,33,6 1,4,6;33,77,99

输出

1 23 45 
33 5 1 
12 33 6 
******
1 4 6 
33 77 99 
******

关于Java将命令行参数(args[])解析为int[][]类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61909803/

相关文章:

c - 什么是函数指示符和实际调用?

performance - 为什么绘制小于 1.5 像素粗的线条比绘制 10 像素粗的线条慢两倍?

具有最大行长度和最大总字符数的正则表达式

java - 以特定方式处理通用实现列表

javascript - Android int 值的 React-Native 模块返回晚了吗?

c 语法将 const 指针传递给 const 数据到函数

java - 沿鼠标光标方向画线

使用 getString 进行 Java clob 检索 - 字符编码问题

java - 如何使用 sshtools SftpClient 和密码?

python - Pandas:如何在不循环的情况下使用带有数据帧参数的 applymap/apply 函数