因此,我得到了一个.txt文件,其中包含两个3x3矩阵,并且需要携带这些矩阵来进行加,乘,减和标量乘法运算,其中程序将仅使用一个矩阵,而用户将输入操作编号。
问题在于使程序只能读取矩阵。
这是我得到的.txt文件,其中前两个数字是大小:
3 3
12 34 45
34 -12 56
76 12 -1
@
3 3
8 13 45
67 0 12
12 -12 3
那里有救生员吗?
EDIT1
到目前为止,这是我所拥有的,乘法方法在我让用户输入矩阵时起作用,但是现在只是给出一些奇怪的答案,我想念的是什么?
import java.io.*;
public class ReadingTest {
public static void main(String[] args) throws IOException {
BufferedReader reader;
reader = new BufferedReader(new FileReader("matrix2.txt"));
String firstDimension = reader.readLine();
String[] split = firstDimension.split(" ");
int firstX = Integer.parseInt(split[0]);
int firstY = Integer.parseInt(split[0]);
int[][] first = new int[firstX][firstY];
for (int i = 0; i < firstX; i++) {
String[] line;
line = reader.readLine().split(" ");
for (int j = 0; j < firstY; j++) {
first[i][j] = Integer.parseInt(line[j]);
}
}
// Read "@"
reader.readLine();
String secondDimension = reader.readLine();
String[] split2 = secondDimension.split("");
int secX = Integer.parseInt(split2[0]);
int secY = Integer.parseInt(split2[0]);
int[][] second = new int[secX][secY];
for (int i = 0; i < secX; i++) {
String[] line;
line = reader.readLine().split(" ");
for (int j = 0; j < secY; j++) {
second[i][j] = Integer.parseInt(line[j]);
}
}
// System.out.println(Arrays.deepToString(second));
multiply(first, second);
reader.close();
}
public static void multiply(int[][] first, int[][] second) {
for (int i = 0; i < first.length; i++) {
int total = 0;
for (int j = 0; j < second[0].length; j++) {
int fnum = first[i][j];
int snum = second[j][i];
int product = fnum * snum;
total += product;
}
System.out.print(total + " ");
}
}
}
答案 0 :(得分:0)
您必须:
阅读第一行
将其拆分以获取尺寸
阅读下一行(关于尺寸)
读取特殊字符(@
)
重复
读取那里的第一个数组:
static void readFile() throws IOException {
BufferedReader reader;
reader = new BufferedReader(new FileReader("file.txt"));
String firstDimension = reader.readLine();
String[] split = firstDimension.split(" ");
int firstX = Integer.parseInt(split[0]);
int firstY = Integer.parseInt(split[0]);
int[][] first = new int[firstX][firstY];
for (int i = 0; i < firstX; i++) {
String[] line = reader.readLine().split(" ");
for (int j = 0; j < firstY; j++) {
first[i][j] = Integer.parseInt(line[j]);
}
}
// Read "@"
reader.readLine();
System.out.println(Arrays.deepToString(first));
}
,并根据输入:
3 3
12 34 45
34 -12 56
76 12 -1
@
3 3
8 13 45
67 0 12
12 -12 3
输出应为:
[[12, 34, 45], [34, -12, 56], [76, 12, -1]]