在Java中通过命令行从文件读取2D数组

在Java中通过命令行从文件读取2D数组,java,Java,我需要从文件中读取矩阵。我可以很好地读入文件,但是如果每一行都以空格开头,那么我会得到一个错误。我该怎么做?我不知道我做的是否正确。 以下是我的部分代码: import java.io.FileNotFoundException; import java.util.Scanner; import java.io.File; public class factor { public static void PrintMatrix(double[][] matrix) { int size

我需要从文件中读取矩阵。我可以很好地读入文件,但是如果每一行都以空格开头,那么我会得到一个错误。我该怎么做?我不知道我做的是否正确。 以下是我的部分代码:

import java.io.FileNotFoundException;
import java.util.Scanner;
import java.io.File;

public class factor {
public static void PrintMatrix(double[][] matrix) {
    int size = matrix[0].length;

    for (int i = 0; i < size; i++) {
        for (int j = 0; j < size; j++) {
            System.out.printf("%4.4f ", matrix[i][j]);
        }

        System.out.println();
    }

    System.out.println();
}

public static void main(String[] args) {
    if (args.length < 1) {
        System.out.println("You must supply a file to load the matrix from.");

        return;
    }

    Scanner s;
    double[][] a;
    double[][] l;
    double[][] u; 
    String line;
    int n;
    String[] nums;

    try {
        s = new Scanner(new File(args[0]));
    } catch (FileNotFoundException ex) {
        System.out.println("File not found.");

        return;
    }

    if (s.hasNext()) {
        line = s.nextLine();

        nums = line.split("\\s+");
        n = nums.length;
        a = new double[n][n];
        l = new double[n][n];
        u = new double[n][n];

        for (int i = 0; i < n; i++) {
            a[0][i] = Double.parseDouble(nums[i]);
        }
    } else {
        System.out.println("Nothing found in file.");

        return;
    }

    for (int i = 1; i < n; i++) {
        nums = s.nextLine().split("\\s+");

        for (int j = 0; j < n; j++) {
            a[i][j] = Double.parseDouble(nums[j]);
        }
    }

    s.close();
import java.io.FileNotFoundException;
导入java.util.Scanner;
导入java.io.File;
公共阶级因素{
公共静态无效打印矩阵(双[]矩阵){
int size=矩阵[0]。长度;
对于(int i=0;i
您可以尝试在
line=s.nextLine()
之后使用
line.trim()
删除空格,作为一种解决方法。trim删除前导空格和尾随空格,因此它不应干扰
.split()
的分隔符