1D-Array in 2D-Array schreiben

  • Themenstarter Themenstarter lipsum
  • Beginndatum Beginndatum
L

lipsum

Gast
Hallo,
ich versuche, ein 1D-Array (singlewerte) in ein 2D-Array (singlewerte2d) zu schreiben.

Dabei entspreicht werte[] dem Array, in das die Eingabe ursprünglich als String eingepflegt wurde. In singlewerte sind die Strings in einzelne chars zerlegt und gespeichert worden.

Bsp. für Inhalt der Arrays:

werte[0] = "abc"

singlewerte[0] = "a"
singlewerte[1] = "b"
singlewerte[2] = "c"


Jetzt sollen Werte nach folgendem Muster in ein 2D-Array überführt werden:

singelwerte2d[zeile][spalte]

Die Variable "biggest" im Folgenden enthält den Wert der längsten Eingabe unter "werte[]". Sollten sich die Eingaben in der Länge unterschieden haben, dann wurden diese Unterschiede bereits durch Leerzeichen ausgeglichen. Nun sind also alle bereits gleichlang.


Hier mein Versuch:

Java:
char singlewerte2d[][] = new char[werte.length][biggest];

    int i = 0;

      for ( int zeile = 0; zeile < werte.length; zeile++ ){
      
	for ( int spalte=0; spalte <= 4; spalte++ ) {
        	  singlewerte2d[zeile][spalte] = singlewerte[i];
		  i++;
	}
    }

Wahrscheinlich ist das nicht sehr schwierig. Aber im Moment stehe ich total auf'm Schlauch.


Beste Grüße,
lipsum
 
sooo ? ansonsten hab ich glaub ich deine Frage nicht verstanden 😀

(Ich habs jetzt mit ner List gemacht aber vom Ablauf isses ja ähnlich mit dem Array 😉)

Java:
public static void main(String args[]) {

		List<String> stringList = new ArrayList<String>();
		stringList.add("Hallo");
		stringList.add("Hallo Welt");

		int biggestString = 0;
		for (String string : stringList) {
			if (string.length() > biggestString) {
				biggestString = string.length();
			}
		}

		char[][] array2d = new char[stringList.size()][biggestString];

		for (int i = 0; i < stringList.size(); i++) {
			for (int y = 0; y < biggestString; y++) {
				if (stringList.get(i).length() > y) {
					array2d[i][y] = stringList.get(i).charAt(y);
				} else {
					array2d[i][y] = ' ';
				}
			}
		}

		for (int i = 0; i < array2d.length; i++) {
			for (int y = 0; y < array2d[i].length; y++) {
				System.out.print(array2d[i][y] + " ");
			}
			System.out.println();
		}
	}

Ausgabe:

Code:
H a l l o           
H a l l o   W e l t
 
Zuletzt bearbeitet:
Hey pl4gu33,
dank dir, für die schnelle Antwort. Du liest allerdings die Werte direkt aus dem Ursprungs-String (Eingabe), sprich stringList aus. Ich habe diese Eingabe in einen 1D-Array zerlegt, da die kürzeren Zeilen durch Leerzeichen aufgefüllt werden sollten. (hat auch noch weitere Gründe, warum ich erst zerlege). Jedenfalls möchte ich dieses 1D-Array jetzt in ein 2D-Array ([X][Y]) einfügen, wobei der Y-Wert sich an der maximalen Wortlänge orientieren soll, damit es in der Ausgabe wieder so gegliedert ist, wie bei der Eingabe.



EDIT: ich guck mir deinen Code nochmal genauer an... der könnte genial sein. Nur nimmt er "get" bei mir nicht. Muss mal gucken, wie ich das hinbasteln kann.
 
Zuletzt bearbeitet von einem Moderator:
Geil... ich bin begeistert! Hab den Code dahingehend angepasst, dass er die Daten aus dem 1D-Array liest und es läuft!

Input:

Java:
             char[][] singlewerte2d = new char[werte.length][biggest];
 int i = 0;
        for (int zeile = 0; zeile < werte.length; zeile++) {
            for (int spalte = 0; spalte < biggest; spalte++) {
                    singlewerte2d[zeile][spalte] = singlewerte[i];
                    i++;
                }
            }


Output:

Java:
            for (i = 0; i < singlewerte2d.length; i++) {
            for (int y = 0; y < singlewerte2d[i].length; y++) {
                System.out.print(singlewerte2d[i][y] + " ");
            }
                       System.out.println();
                       }



Besten Dank!
 

Neue Themen


Zurück
Oben