String[][] array mit String[] array füllen?

truejojo

Grünschnabel
Moin moin,

kann mir einer von euch evtl. helfen?
Wäre echt super! Mein Problem ist, das ich es nicht schaffe das Array
memory.spiel.spielBrett mit dem Array ausgabe zu füllen!
Wie geht das, hat einer vielleicht ne Idee?

Wäre echt klasse, schönes we noch und vielen Dank im vorraus!
Lg, truejojo
Code:
String ausgabe = "ABCDEFGHABCDEFGH";

                for(int i=0; i<memory.spiel.spielBrett.length; i++)
		{
			for(int j=0; j<memory.spiel.spielBrett[i].length; j++)
			{
				memory.spiel.spielBrett[i][j] = ausgabe[j];
			}
			
		}
//	******** Test Ausgabe *************************************************
		String output = "";
		for(int i=0; i<memory.spiel.spielBrett.length; i++)
		{
			for(int j=0; j<memory.spiel.spielBrett[i].length; j++)
			{
				output += memory.spiel.spielBrett[i][j]+ " ";
			}
			output += "\n";
		}
		System.out.println("TestAusgabe\n"+output);
 
Ausgabe ist ja auch ein String und kein Array. Das dürfte gar nicht kompilieren so wie dus gepostet hast. Mit ausgabe.split("") kriegst du ein String [] Zeichen für Zeichen.

Und nimmt statt += am Besten nen StringBuilder.
 
Hi,
super vielen Dank erstmal!!
Leider ist mir ein Fehler unterlaufen.
Und zwar ist in meiner Klasse "ausgabe" wirklich ein Array, hatte es blos leider falsch wieder gegeben es müsste ungefähr so sein, wie es jetzt verbessert ist!
Also, wenn Du mir noch mal helfen könntest wäre echt super :)
Wünsch nochmal ein schönes we und vielen Dank vorweg!
Lg, truejojo
Code:
String[] ausgabe = new String[ABCDEFGHABCDEFGH] ;

for(int i=0; i<memory.spiel.spielBrett.length; i++)
{
for(int j=0; j<memory.spiel.spielBrett[i].length; j++)
{
memory.spiel.spielBrett[i][j] = ausgabe[j];
}

}
// ******** Test Ausgabe *************************************************
String output = "";
for(int i=0; i<memory.spiel.spielBrett.length; i++)
{
for(int j=0; j<memory.spiel.spielBrett[i].length; j++)
{
output += memory.spiel.spielBrett[i][j]+ " ";
}
output += "\n";
}
System.out.println("TestAusgabe\n"+output);
 
Also wenn du Code postest der nicht mal compiliert kann ich da auch nicht so ganz dein Problem rausfinden.

Folgendes geht:
Java:
public static void main(String[] args) {
		final String LINE_SEPARATOR = System.getProperty("line.separator");
		String[] ausgabe = "ABCDEFGHABCDEFGH".split("");
		String[][] spielBrett = new String[5][ausgabe.length];

		for (int i = 0; i < spielBrett.length; i++) {
			for (int j = 0; j < spielBrett[i].length && j < ausgabe.length; j++) {
				spielBrett[i][j] = ausgabe[j];
			}

		}
		// ******** Test Ausgabe
		// *************************************************
		StringBuilder output = new StringBuilder( );
		for (int i = 0; i < spielBrett.length; i++) {
			for (int j = 0; j < spielBrett[i].length; j++) {
				output.append(spielBrett[i][j]);
			}
			output.append(LINE_SEPARATOR);
		}
		System.out.println("TestAusgabe: " + LINE_SEPARATOR + output);
	}
 
Code:
/* Hi vielen Dank, das Du es nochma korregiert hast!! :)
 *  leider hatte ich mein problem so selten dämlich dargestellt,
 *  das es nicht klar war, was los ist.
 *  Ich zeig es mal
 */
public class Test 
{
	public static void main(String[] args) 
	{//habs einwenig modifiziert
		int hoehe = 4;
		int breite = 4;
		
		String[][] feld = new String[hoehe][breite];
		String[] ausgabe = {"a","b","c","d","e","f","g","h","a","b","c","d","e","f","g","h"};
		/* hab hier also ausgabe und wollt das in das feld übergeben,
		 * dabei kam dann immer das Ergebnis wie bei TestAusgabe 1 raus.
		 * hab dann die lösung mit dem counter gefunden und kann nun richtig
		 * ausgeben bzw feld so füllen wie in TestAusgabe 2!
		 * 
		 * Sorry für den Umstand, ich muss eindeutig präziser die Probleme darstellen,
		 * mir war es so offentsichtlich
		 * schön abend noch :)
		 * Lg truejojo
		 */
		
		for(int i=0; i<hoehe; i++)
		{
			for(int j=0; j<breite; j++)
			{
				feld[i][j] = ausgabe[j];
			}
		}
		
		String output = "";
		for(int i=0; i<feld.length; i++)
		{
			for(int j=0; j<feld[i].length; j++)
			{
				output += feld[i][j] + " ";
			}
			output += "\n";
		}
		System.out.println("TestAusgabe 1\n"+output);
		 		
 		int counter = 0;// PS, ist das ne gute lösung?
		for(int i=0; i<hoehe; i++)
		{
			for(int j=0; j<breite; j++)
			{
				feld[i][j] = ausgabe[counter];
				counter++;
			}
		}
		
		output = "";
		for(int i=0; i<feld.length; i++)
		{
			for(int j=0; j<feld[i].length; j++)
			{
				output += feld[i][j] + " ";
			}
			output += "\n";
		}
		System.out.println("TestAusgabe 2\n"+output);
	}

}
 
Zurück