如何分别读取每一行的整数

时间:2016-09-30 20:50:02

标签: java arrays

我想阅读一个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());

1 个答案:

答案 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]]

然后,您可以从那里轻松地检查您想要的任何内容。