Meine Zeichenfolge initialisiert sich selbst als null ... oder zumindest scheint es so. Ich versuche, eine benutzerdefinierte toString-Funktion für meine Matrix zu machen. this.matrixArray
ist ein 2D-Array mit den Dimensionen 'm x n'.String bleibt als Null initialisiert
public String toString() {
String stringAsMatrix = "";
String dimensions = this.m + "," + this.n + "\n";
stringAsMatrix += dimensions;
String[] dataRows = new String[this.m];
for (int row = 0; row < this.m; row++) {
for (int column = 0; column < this.n; column++) {
String elementString = "";
elementString += this.matrixArray[row][column];
if (column == this.n-1) {
dataRows[row] += elementString + "\n";
} else {
dataRows[row] += elementString + ","; // Only add a comma if this isn't the last element in the row
}
}
stringAsMatrix += dataRows[row];
}
return stringAsMatrix;
}
Dies ist die Ausgabe, die ich bekomme, aber ich verstehe nicht, warum es 'Null' vor meiner Zeichenfolge druckt. Die Dimensionen sind korrekt (das Matrix-Array ist in der Tat 2x2). Die Werte selbst sind auch richtig (my matrix is {{1,2}, {3,4}})
2,2
null1.0,2.0
null3.0,4.0
Wenn Sie einen 'neuen String [This.m]' erstellen, beginnt es voll von Nullen. Das gleiche gilt für jedes Array eines nicht-primitiven Typs. – user2357112
Auch das Erstellen von Strings mit '+ =' in einer Schleife ist eine wirklich ineffiziente Art, Dinge zu tun. – user2357112
@ user2357112 '+ =' kompiliert tatsächlich einen 'StringBuilder', der hinter den Kulissen effizient ist, wie man mit' javap -c Klassenname' sieht. –