Stringpärchen geordnet ausgeben

Hallo!
Hier lautet eine Aufgabe, dass ich eine Liste von Stringpärchen der Form [n][2] habe und man die Strings so ausgeben soll, dass sie geordnet untereinander stehen. Quasi so:
String 1 __________ = String 2
Das ist String 3 ____ = Das ist String 4
(An Stelle der ____ sollten Leerzeichen hin)

Meine erste Intuition war, dass ich dort mit einer for-Schleife drübergehe, komme allerdings nicht wirklich weiter. Ich kann nicht mal in Worte fassen, was die Schleife so wirklich machen soll.

Hat da jemand einen Tipp? Vor allem das Eingerückte macht mir Probleme, ein \t verursacht nämlich nur einen Tabulator, aber je nach dem, wie lang der String an erster Stelle wird, braucht man ja unterschiedlich viele Tabulatoren.

Ich bin für jeden Tipp dankbar!
 
Naja prinzipiell musst du erstmal den längsten String in deiner Liste finden. Anhand dieser Länge minus der Länge des "aktuellen" Strings kannst du dann die Leerzeichen berechnen, die du einfügen musst.
Dann kannst du den 1. String auf der Konsole ausgeben + die berechnete Anzahl an Leerzeichen + "=" + den 2. String. Und das machst du für jedes Pärchen.
 
Naja prinzipiell musst du erstmal den längsten String in deiner Liste finden. Anhand dieser Länge minus der Länge des "aktuellen" Strings kannst du dann die Leerzeichen berechnen, die du einfügen musst.
Dann kannst du den 1. String auf der Konsole ausgeben + die berechnete Anzahl an Leerzeichen + "=" + den 2. String. Und das machst du für jedes Pärchen.

Vielen Dank!
Das funktioniert ja dann leider nicht für n Stück, wenn es plötzlich einen längeren String gibt als den bisherigen funktioniert das Ganze ja schon nicht mehr. Oder kann ich das auch irgendwie miteinbinden?
 
Doch klar funktioniert das für n Stück.
Du musst am Anfang den längsten String in der Liste finden.

Danach gehst du die Liste durch und machst genau das was ich oben beschrieben habe. 1. String ausgeben, x Leerzeichen anhängen, "=" ausgeben, 2. String ausgeben.
 
Wenn du deine Maximallänge berechnet hast, kannst du alternativ auch String.format nutzen um die passende Anzahl an Leerzeichen auszugeben 😉
Java:
        String[][] array = {{"Kurz", "Teststring 1"},
                {"Mittel", "Teststring 2"},
                {"Etwas länger", "Teststring 3"},
                {"Noch etwas länger", "Teststring 4"}};


        int maxLength = 17; //Die solltest du natürlich irgendwie berechnen ;)
        for (String[] a : array) {
            System.out.println(String.format("%-" + maxLength + "s = %s", a[0], a[1]));
        }
 
Ich danke euch allen für eure Hilfe! Ich habe es zwar immer noch nicht hinbekommen (ich stehe einfach komplett auf dem Schlauch), die 1 zu 1 Lösung soll mir aber auch niemand hinklatschen. Ich höre mich morgen mal um, mal schauen, wie man das eigentlich hätte lösen sollen.
Aber danke! Vielleicht schaue ich bei anderen Fragen mal wieder vorbei, hier wird einem wirklich gut geholfen.
 
Nur nochmal als kleiner Anstoß 😉

Java:
    public static void main(String[] args) {
        String[][] array = {{"Kurz", "Teststring 1"},
                {"Mittel", "Teststring 2"},
                {"Etwas länger", "Teststring 3"},
                {"Noch etwas länger", "Teststring 4"}};

        int maxlen = 0;
        for (String[] subArray : array) {
            System.out.println("Erstes Element: " + subArray[0] + "       Länge: " + subArray[0].length());

            if (xxx) {
                maxlen = yyy;
            }
        }

        for (String[] subArray : array) {
            System.out.println("Element: " + subArray[0] + "       Benötigte Leerzeichen: " + (maxlen - subArray[0].length()));
           
         // ...
        }
    }

Wenn du die maximale Länge hast, kannste ja entsprechend berechnen, wie viele Leerzeichen du noch brauchst. Entweder gibst du dann nach jedem Wort manuell die Anzahl der Leerzeichen aus oder du benutzt die String.format-Methode wie in meinem 1. Beitrag.
 

Zurück
Oben