我应该把什么数据传递给二维数组



我想创建一个3乘4的数组,并为所有这些字段设置值。这些值都是由扫描器对象产生的字符串。问题是,正如你所看到的,我不知道要传递哪个变量作为数组中每个字段的值。什么好主意吗?

 import java.util.*;
 public class multArray {
     public static void main(String[] args) {
         String name, LastName, gender, age, value;
         int i, j, x;
         int y = 4;
         int row = 3;
         int col = 4;
         String[][] array = new String[4][3];
         for (x = 0; x < y; x++) {
             System.out.println("Input first name");
             Scanner kbin1 = new Scanner(System.in);
             String name = kbin1.next();
             System.out.println("Input last name");
             Scanner kbin2 = new Scanner(System.in);
             String LastName = kbin2.next();
             System.out.println("Input gender");
             Scanner kbin3 = new Scanner(System.in);
             String gender = kbin3.next();
             System.out.println("input age");
             Scanner kbin4 = new Scanner(System.in);
             String age = kbin4.next();
             for (i = 0; i < row.length; i++) {
                 for (j = 0; j < col.length; j++) {
                     array[i][j] = ? ? ? ? ;
                 }
             }
         }
         for (i = 0; i < row.length; i++) {
             for (j = 0; j < col.length; j++) {
                 System.out.println(array[i][j] + " ");
             }
         }
     }
 }

我看到的是你迭代了4次或者从用户那里获得了4次输入

for (x=0; x<y; x++ )

而不是把它的值放在一个2 for循环中只是使用x值作为外部循环的当前行索引

例子:

:

    for (i=0; i < row.length; i++) { 
        for (j=0; j< col.length; j++){
            array [i][j]= ????;
            }
        }

使用:

j = 0;
array [x][j] = name
array [x][j++] = LastName; 
array [x][j++] = gender;
array [x][j++] = age;

其中x为行,j为列

也让你的2D数组3行4列

new String [3] [4] //3 rows 4 column

由于您需要一个3 x 4的数组,您可以轻松地执行以下操作:

Scanner scan = new Scanner (System.in);
for (int x = 0; x < row; x++) {
     System.out.println("Input first name");
     String name = scan.next();
     System.out.println("Input last name");
     String LastName = scan.next();
     System.out.println("Input gender");
     String gender = scan.next();
     System.out.println("input age");
     String age = scan.next();
     int j = 0;
     array [x][j] = name
     array [x][j++] = LastName; 
     array [x][j++] = gender;
     array [x][j++] = age;
}

两件事。第一,您不需要为每个用户输入创建单独的Scanner对象;您可以重用相同的Scanner对象来接受其他输入。其次,选择更"统一"的变量名对您有好处。所以不是:

String namee;
String LastName;
String gender;
String age;

最好选择更简洁的,比如:

String firstName, lastName, gender, age;

相关内容

  • 没有找到相关文章

最新更新