Java Array 2D无法使用参数

时间:2018-10-08 01:11:40

标签: java arrays eclipse parameters 2d

我是社区的新手,我需要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(" ");
        }

    }

   }
  }

2 个答案:

答案 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();
        }
    }