javahasNextLine()的终止条件

 private static ArrayList<Integer[]> inputMatirx() {
        ArrayList<Integer[]> matrix = new ArrayList<>();
        Scanner in = new Scanner(System.in);
        System.out.println("Please input the matrix.");
        while (in.hasNextLine()) {
            String[] row = in.nextLine().split(" ");
            Integer[] r = new Integer[row.length];
            for (int i = 0; i < row.length; i++) {
                r[i] = Integer.parseInt(row[i]);
            }
            matrix.add(r);
        }
        in.close();
        System.out.println("Input end.");
        return matrix;
    }

我想通过这个方法输入一个矩阵
但是每次输到最后一行按两次回车想结束输入时,会报错,请问如何解决?
图片说明

String line=sc.nextLine();
if(line.length()>0){
String[]arr=line.split(" ");
for(int i=0;i<arr.length;i++){
row.add(Integer.parseInt(arr[i]));
}
list.add(row);

        }else {
            break;
        }

可以加个结束条件啊,比如输入0时,跳出循环就好了

类型转换异常,parseInt,把空字符串转成int是不允许的