繁体   English   中英

nextInt()同一行中的Java输入

[英]nextInt() Java input in same line

我正在做一个基于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");

有任何想法吗?

谢谢!

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

而是使用Enter并返回到为什么您不写所有值并用空格或特定定界符分隔它们的行 ,因此,当您完成输入后,按Enter返回下一行以扫描下一行,如下所示:

1 2 3 4 5
5 6 7 8 9

然后,您可以像这样获取值:

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

然后使用String[]获得您的int值?

这可以为您提供帮助。

在控制台方式下,输入为enter:这是一个折线。

为了解决您的问题,您可以采取其他措施:

  • 您无需考虑格式就接受用户输入。
  • 每次输入后,您将重新显示矩阵对象的实际结果。
    这样,您可以根据需要设置其格式,甚至可以在下一个数字的位置显示特殊字符以供用户填写。

使用您的实际代码,它看起来可能像:

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 
           }
      }
   ...
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM