我是社区的新手,我需要Java 2d阵列方面的帮助 是一个学校项目 这是我的问题
我使用静态长度构建Array 2D,并且可以工作,但是带有参数的相同代码不起作用。
首先打印System.out.print(“插入名称”);
之后,不执行语句matrix [i] [0] = input.nextLine();
第三次打印System.out.print(“插入姓氏”);
现在可以使用,但是索引[0],[0]为空
打印示例:
a
b b
c c
谢谢!
import java.util.*;
public class Students {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
System.out.println("Insert number of Students");
int numStudents = input.nextInt();
String[][] matrix = new String[numStudents][2];
for (int i = 0; i < numStudents; i++) {
System.out.print("Insert Name");
matrix[i][0] = input.nextLine();
for (int j = 1; j < 2; j++) {
System.out.print("Insert Last Name");
matrix[i][j] = input.nextLine();
}
}
for(int z=0; z<numStudents ;z++) {
System.out.println();
for(int h=0; h<2;h++) {
System.out.printf(matrix[z][h]);
System.out.printf(" ");
}
}
}
}
答案 0 :(得分:1)
使用字符串value = input.next();而不是input.nextLine(); 要么 使用额外的input.nextLine();在input.nextInt()之后; 即
int numStudents = input.nextInt();
input.nextLine()
之所以发生这种情况,是因为input.nextInt()仅读取一个整数而没有完成该行。
答案 1 :(得分:0)
我认为这应该对您有用。 无需嵌套的for循环即可读取姓氏。
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
System.out.println("Insert number of Students");
int numStudents = input.nextInt();
input.nextLine();
String[][] matrix = new String[numStudents][2];
for (int i = 0; i < numStudents; i++) {
System.out.println("Insert Name");
matrix[i][0] = input.nextLine();
System.out.println("Insert Last Name");
matrix[i][1] = input.nextLine();
}
for (int z = 0; z < numStudents; z++) {
System.out.println();
for (int h = 0; h < 2; h++) {
System.out.print(matrix[z][h]);
System.out.print(" ");
}
System.out.println();
}
}