当前位置: 首页 > 知识库问答 >
问题:

JAVA使用用户输入填充2D数组

薛阳荣
2023-03-14

我正在尝试填充一个NxN矩阵。我想做的是能够将给定行的所有元素作为一个输入输入。例如,如果我有一个4x4矩阵,对于每一行,我想在一个输入中输入4列,然后在每次输入后打印显示新值的矩阵。我尝试运行以下代码,但我得到一个错误:线程“main”中的异常java.util.InputMismatchException。这是我的代码:

     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();

         }
     }

当我得到输入4个数字的提示时,我输入以下内容:

1,2,3,4

然后我得到错误。

共有3个答案

钱季
2023-03-14

我相信使用字符串会更容易。split(),而不是。使用delimiter(),因为在使用delimiter时,您还必须用逗号输入最后一个数字(因为逗号是用来分隔内容的),除非您创建一些正则表达式以逗号和逗号作为分隔符。

此外,您应该给出提示-系统。出来打印(“输入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]);
   }
}

洪鸿
2023-03-14

1.2.3.4在扫描仪中不可见为双数,而是整数。

因此,您有以下可能性:

  • 如果您不需要使用nextInt()
  • 写1.0,2.0,3.0,4.0而不是1,2,3,4
  • 将值作为字符串读取,并将它们转换为Double.parse双()
习华灿
2023-03-14

你应该这样做;

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();

您也不应该忘记关闭扫描仪!

 类似资料:
  • 我对JAVA非常陌生,我需要帮助获得某种嵌套循环,我认为这是一个用户输入,并将输入放入数组中。还有一个哨兵-1。我知道为别人做作业是不受欢迎的,而这根本不是我所要求的。我希望有人能帮我解释一下,而不是帮我写代码。我刚开始需要帮助。我搞不懂这个节目的第一部分: 我必须使用[4][5]的2D数组,其中4是销售人员的数量,5是他们销售的产品的数量。我必须向用户询问人名(1-4),然后再询问已售出的产品(

  • 我试图用2和5的随机值填充一个数组,但是生成的数字总是从0开始。具体问题如下,以及我目前拥有的代码。 (问题)创建一个名为TwoDarrayu_YourFirstName的公共类,成员如下: 带有头的方法:public静态空填充2DArray(int[][]ma)上述方法将填充ma引用的2D整数数组。数组元素值将在2到5之间随机生成。 到目前为止我的代码:

  • 问题内容: 我在作业上碰壁,一直在梳理网站以寻求任何有用的信息(出现空白)。我需要创建一个类,在该类中创建一个构造函数,然后再创建一个子类以扩展超类。然后,我需要使用main方法创建一个新文件来演示这两种情况。从概念上来说没问题。 我的问题是:如何使用构造函数初始化对象,但需要用户输入? 现在我得到的错误是:“类CarRental中的构造函数CarRental无法应用于给定类型;必需:String

  • 问题内容: 我有2个1d数组,而我正在尝试将它们填充到JAVA中的单个2d数组中。 例如: 结果应为: 我该怎么办?我目前有这样的事情: 我有点被困在那里… 问题答案: 2D数组是数组的数组。那你为什么不试试这个呢? 为了确保它是如此简单并且可以正常工作,请进行以下测试:

  • 嗨,我是一个非常新的编码,并试图弄清楚如何创建一个二维数组。它要求用户输入行和列大小,然后用随机数填充那些选定的行和列大小。经过几天的努力,我决定来这里寻求帮助。这是我到目前为止所拥有的,它遍布我所知道的所有地方。

  • 我做了一个程序,要求我输入一个名字,这个名字应该在一个名为的数组中。看起来是这样的: 我在这里做错了什么?