Java: 2D Char array in toString zu String umwandeln?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Ich kenne mich mit Java erlich gesagt nicht wirklich aus.

Allerdings musst du (denke ich) in einer For- Schleife auf jede Spalte zugreifen und diese dann zu einem String hinzufügen.
Für ein besseres Verständnis schreibe ich ein Beispiel in Pseudocode:

String fin;
for(char[] charr : array) {

fin += charr.toString() + "\n";

}

Ich denke, dies sieht in Java ein bisschen anders aus.

Allerdings sollte das Prinzip in jeder Programmiersprache das selbe sein.

Was willst du überhaupt ausgeben? Den Gesamtinhalt des Array? Ein Feld? 

Abgesehen von diesen Fragen musst du hier eigentlich nichts umwandeln. Dein Array ist von Typ "char", also "Zeichen". Ein "String" ist nichts weiteres als ein großes "char"-Array. Du kannst also mit "println" auch einfach deinen "char" ausgeben.

Woher ich das weiß:Berufserfahrung – Java Entwickler

Soulsmirror 
Fragesteller
 07.01.2017, 16:47

Das Spielfeld besteht ja aus Zeichen wie z.B. #, das ich in einem char Array gespeichert hab. Hier zitiere ich aus der Aufgabe:

"Für die Ausgabe des Spielfeldes soll eine public String toString()-Methode erstellt werden. In ihr wird das Attribut des Spielfeldes in einen formatierten String überführt, welcher von der Methode anschließend zurückgegeben wird. Dies ermöglicht mittels

einfachem println Aufruf das ganze Spielfeld in der Konsole anzeigen zu lassen."

0
Eismensch  07.01.2017, 20:11
@Soulsmirror

Ich nehme also an du hast ein char[ ][ ] Array. Dieses sollst du über die "toString()"-Methode, welche du selber schreiben sollst in einen String umwandeln. Was genau mit "formatierten String" kann ich nur Raten. Ich vermute einfach mal, die meinen aus dem Array soll ein einziges String objekt werden.

Vorgehensweise wäre eigentlich somit simpel.

Du übergibst an die toString-Methode dein Array.
Hier erstellst du eine Hilfsvariable vom Typ String. Nennen wir sie mal "sAus"
Hier durchläufst du das ganze Zeilenweise in einer For-Schleife und fügst jedes neue Zeichen an sAus an. Sobald eine Zeile durchlaufen ist, fügt man einen "Zeilenumbruch" an und durchläuft die nächste Zeile.

In Pseudo code könnte das so in etwa aussehen:
public String toString(char[][] char) String sAus=""; for(i=0 i<char.lenght i++) { for(j=0 j<char[i].lenght i++) { sAus+=char[i][j]; } sAus+="\n"; } return sAus;

So in etwa könnte das ganze Aussehen. Müsstest natürlich noch die ganzen Abfragen auf NULL etc machen. Aber vom Grundprinzip sollte es so gehen.

2