从Java中的同一文件读取两个矩阵

时间:2019-02-27 02:03:42

标签: java arrays

大家好,在此先感谢您的帮助!
我正在尝试用Java做矩阵计算器
从同一个文件中读取两个矩阵,如下所示:
2 2
34 78
89 -12
@
2 2
67 76
123 5

第一行是排名
第二行和第三行是第一矩阵
“ @”分割第一矩阵和第二矩阵

那是我想出的代码,但我没有
找到与这个问题类似的东西...有人可以帮我吗?

String [] line = new String[30];
    int counter = 2;
    int rank[] = new int[2];
    int matrixa[][] = new int [3][3];

    try {

        BufferedReader MyReader = new BufferedReader(new FileReader("matrix.txt"));

        while(line != null) {
            line = MyReader.readLine().split(" ");
        }

        rank[0] = Integer.parseInt(line[0]);
        rank[1] = Integer.parseInt(line[1]);

        for(int i = 0; i <rank[0];i++) {
            for (int j=0;j<rank[1];j++) {
                matrixa[i][j] = Integer.parseInt(line[counter]);
                counter++;
                System.out.print(matrixa[i][j] + " ");
            }
            System.out.println();
        } }catch (Exception e) {}

1 个答案:

答案 0 :(得分:0)

当行数等于“ @”时,在代码栏留个变量

int ticker;
for(int i = 0; i < lines.length; i++){
    if(lines[i].equals("@")) ticker = i;
}

然后该代码可以用于破坏数组。如果可以预期的话,也可以将其分成两个单独的阵列。

String currentLine;
String[] line  = new String[15];
String[] line2 = new String[15];
int i = 0;
while(line != null && !currentLine.equals("@")){
    line = MyReader.readLine().split("");
    currentLine = line[i];
    if(currentLine.equals("@")) line[i] = null;
    i++;
}
while(line2 != null)){
    line2 = MyReader.readLine().split("");
}

可以将它们解析为矩阵,然后可以从那里对它们进行数学运算。 祝您一切顺利。