有人可以告诉我如何将以下内容解析为 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/