2-dimensionales array zu string code java
Für ein Programm muss ich schreiben, bin ich verpflichtet, eine 2-dimensionales array von einstelligen intgers in eine Zeichenfolge von zahlen, die durch Leerzeichen voneinander getrennt. Ein test-code zur Verfügung gestellt für mich und wenn ich es, meinen code nicht beide arrayToString tests. Ich bin nicht in der Lage zu finden, wo mein logischer Fehler ist. Jemand helfen!
public static String arrayToString(int[][] a) {
String aString;
aString = "";
int column;
int row;
for (row = 0; row < a.length; row++) {
for (column = 0; column < a[0].length; column++ ) {
aString = aString + " " + a[row][column];
}
aString = aString + "\n";
}
return aString;
}
- Vielleicht ist es noch nicht, wie die extra Leerzeichen am Anfang jeder Zeile. Ist es möglich für Sie zu post-test-code, so können wir sehen?
- Da Ihr code wie erwartet funktioniert, Sie müssen uns sagen, was die erwartete Ausgabe (aka: tests) Aussehen.
- Könnte es vielleicht sein, das extra Leerzeichen am Anfang, aber ich sehe nicht, das Leerzeichen in der Ausgabe, wenn ich es mache. Wo könnte ich nach der test-code für Euch, um es zu sehen? @DavidWallace
- Bearbeiten Sie die Frage. Hängen Sie den test-code.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denken kann drei mögliche Probleme.
Bis Sie die post-test-code, wir können nicht sehen, welche das problem ist. Aber man konnte sich mit allen drei, indem Sie Ihre Schleife zu diesem.
Ausgabe:
Überspringen, wenn Sie diese Zeile
aString = aString + "\n";
Ihre Ausgabe wird wie folgt Aussehen@Dawud ibn-kareem erklären gut die mögliche Ursache des Fehlers im test.
Mit Java 8 Stream, es ist ziemlich einfach zu tun, was Sie wollen!
Mit der Eingabe: [[1,2,3], [3,4,5], [5,6,7]]
Ausgabe:
Andere Methode zur Trennung von jeder Zeile des 2D-Arrays ohne carriage return
Ausgabe
Spaß haben!
Dein code ist grundsätzlich OK, außer Sie setzen ein Leerzeichen am Anfang jeder Zeile. Reinigen Sie Sie, bevor Sie zurückkehrt, fügen Sie diese Zeile:
Nutzt diese regex zu löschen (durch ersetzen mit Leerzeichen) alle Leerzeichen am Anfang der Zeilen. Die regex-flag
(?m)
macht^
match Beginn jeder Zeile der Eingabe (normalerweise^
findet nur den start-Eingang).