我在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");
有什么想法吗?
谢谢!
答案 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
}
}
...
}