Вот некоторый действительно простой код, который выполняет всю работу в несколько строк с использованием сканеров и обрабатывает любое количество чисел в строке.
РЕДАКТИРОВАНИЕ: Обратите внимание, тип возврата List<List<Integer>>
выбран для здравого смысла более int[][]
public static List<List<Integer>> parseIntArrays(InputStream in) {
Scanner s = new Scanner(in);
List<List<Integer>> list = new ArrayList<List<Integer>>();
while (s.hasNextLine()) {
Scanner ns = new Scanner(s.nextLine());
List<Integer> nums = new ArrayList<Integer>();
list.add(nums);
while (ns.hasNextInt())
nums.add(ns.nextInt());
}
return list;
}
Вот некоторый тестовый код для выполнения удовольствия:
public static void main(String[] args) {
String input = "1 0 0\n1 2 0 0\n1 0 1 0\n1 0 2 0 0 0 1\n1";
List<List<Integer>> result = parseIntArrays(new ByteArrayInputStream(input.getBytes()));
for (List<Integer> line : result)
System.out.println(line);
}
Выход:
[1, 0, 0]
[1, 2, 0, 0]
[1, 0, 1, 0]
[1, 0, 2, 0, 0, 0, 1]
[1]