JAVA使用用户输入填充2D数组
我正在尝试填充一个NxN矩阵。我想做的是能够输入给定行的所有元素作为一个输入。例如,如果我有一个4x4矩阵,对于每一行,我想在一个输入中输入4列,然后在显示新值的每个输入后打印矩阵。我尝试运行以下代码,但得到一个错误,该错误为:线程“main”java.util.InputMismatchException中的异常。这是我的密码:JAVA使用用户输入填充2D数组,java,multidimensional-array,Java,Multidimensional Array,我正在尝试填充一个NxN矩阵。我想做的是能够输入给定行的所有元素作为一个输入。例如,如果我有一个4x4矩阵,对于每一行,我想在一个输入中输入4列,然后在显示新值的每个输入后打印矩阵。我尝试运行以下代码,但得到一个错误,该错误为:线程“main”java.util.InputMismatchException中的异常。这是我的密码: double twoDm[][]= new double[4][4]; int i,j = 0; Scanner scan = new
double twoDm[][]= new double[4][4];
int i,j = 0;
Scanner scan = new Scanner(System.in).useDelimiter(",*");
for(i =0;i<4;i++){
for(j=0;j<4;j++){
System.out.print("Enter 4 numbers seperated by comma: ");
twoDm[i][j] = scan.nextDouble();
}
}
然后我得到了错误 你应该这样做
double twoDm[][] = new double[4][4];
Scanner scan = new Scanner(System.in);
int i, j;
for (i = 0; i < 4; i++) {
System.out.print("Enter 4 numbers seperated by comma: ");
String[] line = scan.nextLine().split(",");
for (j = 0; j < 4; j++) {
twoDm[i][j] = Double.parseDouble(line[j]);
}
}
scan.close();
double-twoDm[][]=新的双精度[4][4];
扫描仪扫描=新扫描仪(System.in);
int i,j;
对于(i=0;i<4;i++){
System.out.print(“输入4个数字,用逗号分隔:”);
String[]line=scan.nextLine().split(“,”);
对于(j=0;j<4;j++){
twoDm[i][j]=Double.parseDouble(第[j]行);
}
}
scan.close();
您也不应该忘记关闭扫描仪 1234在扫描仪上不可见为双数,而是整数 因此,您有以下几种可能性:
- 如果您不需要双倍密码,请使用
nextInt()
- 写1.0,2.0,3.0,4.0而不是1,2,3,4
- 以字符串形式读取值,并使用
double.parseDouble()
string.split()
比使用更容易。使用delimiter()
,因为在使用delimiter时,您必须用逗号输入最后一个数字(因为comma
是分隔内容的一个)除非创建一些正则表达式以逗号和\n
作为分隔符
另外,您应该给出提示-System.out.print(“输入4个逗号分隔的数字:”)代码>在外循环中,而不是在内循环中,因为您将在外循环中的每一行中获取,并且只在内循环的每一行中获取元素
你能行-
double twoDm[][]= new double[4][4];
int i,j = 0;
Scanner scan = new Scanner(System.in);
for(i =0;i<4;i++){
System.out.print("Enter 4 numbers separated by comma: ");
String row = scan.nextLine().split(",");
for(j=0;j<4;j++){
twoDm[i][j] = Double.parseDouble(row[j]);
}
}
double-twoDm[][]=新的双精度[4][4];
int i,j=0;
扫描仪扫描=新扫描仪(System.in);
对于(i=0;iIt是昨天问题的一部分,但我们都忽略了它;我如何在每次更新后的每次迭代中打印出整个矩阵?每次扫描后?您可以编写一个小的矩阵打印输出函数,并在内部循环后调用它…for(i=0;i<4;i++){System.out.print(“输入4个逗号分隔的数字:”);String[]line=scan.nextLine().split(,”);for(j=0;j<4;j++){twoDm[i][j]=Double.parseDouble(line[j]);}printMatrixMethod();}
double twoDm[][]= new double[4][4];
int i,j = 0;
Scanner scan = new Scanner(System.in);
for(i =0;i<4;i++){
System.out.print("Enter 4 numbers separated by comma: ");
String row = scan.nextLine().split(",");
for(j=0;j<4;j++){
twoDm[i][j] = Double.parseDouble(row[j]);
}
}