我应该将哪些数据传递给2D数组?

时间:2014-06-08 04:11:49

标签: java multidimensional-array java.util.scanner

我想创建一个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] + " ");
             }
         }
     }
 }

2 个答案:

答案 0 :(得分:0)

我看到你正在迭代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

答案 1 :(得分:0)

由于您需要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对象来获取其他输入。其次,选择更多&#34;制服&#34;变量名。所以而不是:

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

选择更简洁的内容会更好:

String firstName, lastName, gender, age;