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