我想创建一个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;