Чтение из файла в массив

3 2 2 3

1 0
0 1
-1 1

2 1 0
1 0 3

Первая цифра означает количество строк первой матрицы, вторая- количество столбцов, третья кол-во строк воторой, четвертая - кол-во столбцов. Между цифрами " " - пробелы, между матрицами - пустые строчки

code: #java
try { 
              int aWidth, aHeight, bWidth, bHeight;
              int[][] ma;
              int[][] mb;
 
              BufferedReader buf = new BufferedReader(new FileReader("matrix.txt"));
              String[] tok = buf.readLine().split("\\s+");
              aHeight = Integer.parseInt(tok[0]);
              aWidth  = Integer.parseInt(tok[1]);
              bHeight = Integer.parseInt(tok[2]);
              bWidth  = Integer.parseInt(tok[3]);
              ma = new int[aHeight][aWidth];
              mb = new int[bHeight][bWidth];
 
              String str = "";
              int cnt    = 0, row = 0;
              while(buf.ready()) {
                  str = buf.readLine();
                  if(str.length() > 2) {
                      tok = str.split("\\s+");
                      for(int c = 0; c < aWidth && cnt == 1; c++) 
                          ma[row][c] = Integer.parseInt(tok[c]);
                      for(int c = 0; c < bWidth && cnt == 2; c++)
                          mb[row][c] = Integer.parseInt(tok[c]);
                      row++;
                  } else {
                      cnt++;
                      row = 0;
                  }
              }
              buf.close();
              // ... здесь умножение матриц выполнить
} catch(IOException err) {
             err.printStackTrace();
}

автор: xAtom

Поделиться:

Похожие статьи: