我在这里和Google上进行了搜索,但是找不到与打印矩阵对象有关的任何信息。我对java和oop很陌生。
我无法从TestMatrix类中打印出矩阵。
我创建了一个Matrix类来做到这一点(任务的一部分)。
应该有一个toString()方法来执行此操作,但是我的方法无法正常工作。
直到星期二,我才能见到我的教授。因此,我希望获得一些帮助,以便我能解决。谢谢。
这是TestMatrix类:
double [][] data = new double[][]{ {0.5,1,0}, {1,0.5,0}, {0,0.5,1.25}, {0.5,0.5,0.75}};
Matrix m3 = new Matrix(data);
System.out.println("Matrix m3 is a:");
System.out.println(m3);
Matrix m3b = new Matrix(data.clone());
这是我在其中创建构造函数和toString()方法的Matrix类:
public class Matrix {
private double[][] data;
private int rows;
private int columns;
public Matrix(double[][] data, int rows, int columns) {
this.data = new double[rows][columns];
this.rows = rows;
this.columns = columns;
}
public Matrix(double[][] data) {
this.data = new double[rows][columns];
}
public String toString(int rows, int columns) {
this.data = new double[rows][columns];
for (int i = 0; i < data.length; i++) {
for (int j = 0; j < data[i].length; j++) {
System.out.println(data[i][j]);
}
}
return data[i][j];
}
}
这是我得到的输出:
矩阵m3是: assignment3.Matrix@7852e922
这是我应该得到的输出:
矩阵m3是:
4x3矩阵
0.5 1.0 0.0
1.0 0.5 0.0
0.0 0.5 1.25
0.5 0.5 0.75
答案 0 :(得分:0)
您正在使用data
方法重新创建toString
对象,这是不正确的。您可能想要做的就是遍历该数据对象并创建一个字符串,然后将其返回。
您可以做的是创建一个字符串生成器,将数据附加到该字符串生成器,然后返回其字符串表示形式。
以下是您可以用来启发灵感的伪代码:
public String toString() {
StringBuilder sb = new StringBuilder();
for(...) {
for(...) {
sb.append(...);
}
}
return sb.toString();
}