我想阅读一个m*n
矩阵,例如:
2 1 5;
3 1 3 1;
1 2;
我想将所有数字标记下来,例如,现在标记的数字是1,2,3,5
由于我需要确保row = m的输入,我想分别读取每一行。
这是我的代码,但它将所有数字读入同一个列表中,因此我无法确保只有m行:
Scanner sc = new Scanner (System.in);
List<Integer> list = new ArrayList<Integer>();
while (sc.hasNextInt())
list.add(sc.nextInt());
答案 0 :(得分:0)
在解析数字之前,您可以先根据分隔符提取每一行:
Scanner lineScanner =
new Scanner(System.in)
.useDelimiter(";");
然后,将每一行读入自己的数组:
List<List<Integer>> lines = new ArrayList<>();
while(lineScanner.hasNext()) {
List<Integer> newLine = new ArrayList<>();
Scanner rawLine = new Scanner(lineScanner.next());
while(rawLine.hasNextInt()) {
newLine.add(rawLine.nextInt());
}
lines.add(newLine);
}
根据您的输入,System.out.println(lines)
会产生:
[[2, 1, 5], [3, 1, 3, 1], [1, 2]]
然后,您可以从那里轻松地检查您想要的任何内容。