nextInt()同一行中的Java输入

时间:2017-01-08 20:44:49

标签: java matrix

我在java上做矩阵解决控制台软件。

我想要做的是每个“输入”键执行空格而不是在其他位置打破以创建行等等。

当用户键入INT然后按“ENTER”它会中断,因此它会破坏矩阵设计。

到目前为止,这是我的代码:

Scanner scanner = new Scanner(System.in);//.useDelimiter("\\s+");

    for(int i = 0; i < matrix.length; i++) {
        System.out.print("| ");
        for(int j = 0; j < matrix[i].length; j++) {
            matrix[i][j] = scanner.nextInt();
        }
        System.out.print("|");
        System.out.println("");
    }
    scanner.close();
    System.out.println("Done");

有什么想法吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

我不认为这是可能的,所以我会建议另一种方式:

而是使用Enter并返回到为什么您不写下所有值并将其与空格或特定的分隔符,所以当你完成后按回车键返回到下一行,扫描下一行,如下所示:

1 2 3 4 5
5 6 7 8 9

然后你可以得到这样的价值观:

String line = scan.nextLine();
String[] row = line.split(" ");

然后使用String[]获取你的int值?

这可以帮到你。

答案 1 :(得分:0)

在控制台模式下,输入:输入:这是一个分界线。

要解决您的问题,您可以采用不同的方式:

  • 您在不考虑格式化的情况下接受用户输入。
  • 在每次输入后,您将重新显示矩阵对象的实际结果 通过这种方式,您可以根据需要对其进行格式化,甚至可以显示一个特殊字符,以便用户填写下一个数字的位置。

使用您的实际代码,它可能如下所示:

Scanner scanner = new Scanner(System.in);//.useDelimiter("\\s+");

for(int i = 0; i < matrix.length; i++) {
    for(int j = 0; j < matrix[i].length; j++) {
        matrix[i][j] = scanner.nextInt();
        displayActualMatrix(matrix)
    }
}
scanner.close();
System.out.println("Done");
...

private void displayActualMatrix(int[][] matrix){
    for(int i = 0; i < matrix.length; i++) {
        for(int j = 0; j < matrix[i].length; j++) {
              // rendering the matrix 
           }
      }
   ...
}