0Pricing
Java Academy · Lektion

Gezackte Arrays und Tabellenformatierung

Verarbeiten Sie gezackte zweidimensionale Arrays und geben Sie mithilfe spaltenweiser Breiten ausgerichtete Tabellen aus. Die Demo erstellt eine Beispielmatrix ohne Scanner.

Gezackte Arrays und Tabellenformatierung ist eine kostenlose Java Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 6. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Java Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Java Academy-Kurs umfasst insgesamt 6 Lektionen.

Konzept unregelmäßiger Arrays

Unregelmäßige 2D-Arrays: Jede Zeile kann eine andere Länge haben. Behandeln Sie die Zeilen einzeln und nehmen Sie niemals eine gemeinsame Spaltenanzahl an.

Unregelmäßiges Array erstellen

Erstellen Sie ein unregelmäßiges Array, indem Sie Zeilen mit unterschiedlichen Längen anlegen. Die Nachricht erklärt, warum: Wir benötigen nur so viele Spalten, wie die jeweilige Zeile erfordert.

public class Main {
  public static void main(String[] args) {
    // Create a jagged array with 3 rows of varying lengths
    int[][] m = new int[3][];

    // Row 0 has 2 columns
    m[0] = new int[]{1, 2};

    // Row 1 has 3 columns
    m[1] = new int[]{3, 4, 5};

    // Row 2 has 1 column
    m[2] = new int[]{6};

    // Print the jagged array
    System.out.println("Jagged array contents:");
    for (int r = 0; r < m.length; r++) {
      for (int c = 0; c < m[r].length; c++) {
        System.out.print(m[r][c] + " ");
      }
      System.out.println(); // new line after each row
    }
  }
}

Sicher durchlaufen

Durchlaufen Sie das Array sicher, indem Sie für jede Zeile m[r].length verwenden. Die Länge der inneren Schleife kann sich je nach Zeile unterscheiden.

public class Main {
  public static void main(String[] args) {
    // Example jagged array
    int[][] m = {
      {1, 2},
      {3, 4, 5},
      {6}
    };

    // Safe nested loops for a jagged matrix
    for (int r = 0; r < m.length; r = r + 1) {
      // Always use the actual length of the current row
      for (int c = 0; c < m[r].length; c = c + 1) {
        int value = m[r][c];  // process the value
        System.out.print(value + " ");
      }
      System.out.println(); // new line after each row
    }
  }
}

Spaltenbreiten

Um ausgerichtete Spalten auszugeben, berechnen Sie für jede vorhandene Spalte eine Breite, indem Sie alle Zeilen durchsuchen.

// Determine the maximum number of columns among all rows
		int maxCols = 0;
		for (int r = 0; r < m.length; r = r + 1) {
		  if (m[r].length > maxCols) maxCols = m[r].length;
		}

		// For each column, store the maximum string length of values in that column
		int[] w = new int[maxCols];
		for (int r = 0; r < m.length; r = r + 1) {
		  for (int c = 0; c < m[r].length; c = c + 1) {
			int len = Integer.toString(m[r][c]).length();
			if (len > w[c]) w[c] = len;
		  }
		}

Ausgerichtete Ausgabe

Füllen Sie jeden Wert links auf, bis er die Spaltenbreite erreicht, und geben Sie anschließend die Zeile als einzelnen String aus.

// Print each row with left-padded columns
		for (int r = 0; r < m.length; r = r + 1) {
		  String line = "";
		  for (int c = 0; c < m[r].length; c = c + 1) {
			String s = Integer.toString(m[r][c]);
			while (s.length() < w[c]) s = " " + s;  // left pad with spaces
			line = line + s + (c + 1 < m[r].length ? " " : "");
		  }
		  System.out.println(line);
		}

Demo ohne Eingabe

Führen Sie es aus: Diese Demo erstellt eine unregelmäßige Matrix im Code, berechnet die Spaltenbreiten und gibt eine ausgerichtete Tabelle aus – ohne Eingabe.

public class Main {
  // Compute per-column widths for a jagged matrix
  static int[] colWidths(int[][] m) {
    int maxCols = 0;
    for (int r = 0; r < m.length; r = r + 1) {
      if (m[r].length > maxCols) maxCols = m[r].length;
    }
    int[] w = new int[maxCols];
    for (int r = 0; r < m.length; r = r + 1) {
      for (int c = 0; c < m[r].length; c = c + 1) {
        int len = Integer.toString(m[r][c]).length();
        if (len > w[c]) w[c] = len;
      }
    }
    // Ensure at least width 1 for each column
    for (int c = 0; c < w.length; c = c + 1) {
      if (w[c] < 1) w[c] = 1;
    }
    return w;
  }

  // Print the matrix with aligned columns
  static void printTable(int[][] m) {
    int[] w = colWidths(m);
    for (int r = 0; r < m.length; r = r + 1) {
      String line = "";
      for (int c = 0; c < m[r].length; c = c + 1) {
        String s = Integer.toString(m[r][c]);
        while (s.length() < w[c]) s = " " + s;
        line = line + s + (c + 1 < m[r].length ? " " : "");
      }
      System.out.println(line);
    }
  }

  public static void main(String[] args) {
    // Sample jagged matrix (no Scanner; values are hard-coded)
    int[][] m = {
      {1, 23, 456},
      {7, 8},
      {90, 12, 3, 4}
    };

    System.out.println("Aligned table:");
    printTable(m);
  }
}

Prüfung: Unregelmäßiges Durchlaufen

Kurzprüfung: Welche verschachtelte Schleife durchläuft sicher jedes Element einer unregelmäßigen Matrix?

Zusammenfassung & Nächste Schritte

Zusammenfassung: Sie haben unregelmäßige Arrays erstellt, sie sicher mit zeilenweisen Längen durchlaufen, Spaltenbreiten berechnet und ausgerichtete Tabellen ausgegeben – ohne Scanner.

Nächste Schritte: Untersuchen Sie die Maxima von Zeilen und Spalten sowie die Transponierung einer Matrix.

Häufig gestellte Fragen

Ist die Lektion „Gezackte Arrays und Tabellenformatierung“ kostenlos?

Ja — der vollständige Text von „Gezackte Arrays und Tabellenformatierung“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Java Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Java Academy-Kurs umfasst insgesamt 6 Lektionen.

Was lerne ich in „Gezackte Arrays und Tabellenformatierung“?

Verarbeiten Sie gezackte zweidimensionale Arrays und geben Sie mithilfe spaltenweiser Breiten ausgerichtete Tabellen aus. Die Demo erstellt eine Beispielmatrix ohne Scanner. Du übst Java Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Java Academy zu starten?

Keine Vorkenntnisse erforderlich. Java Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 6.

Wie lange dauert die Lektion „Gezackte Arrays und Tabellenformatierung“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Java Academy-Lektion Code schreiben und ausführen?

Ja. Jede Java Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Grundlagen zweidimensionaler Arrays und verschachtelte Iteration
  2. Gezackte Arrays und Tabellenformatierung
  3. Zeilen-/Spaltenmaxima, Transponieren und Formatierung
  4. 2D-Mini-Projekt: Notenverwaltung
  5. 2D-Hilfsfunktionen als Hilfsklasse (Refactoring)
  6. Bereinigung und Validierung von 2D-Daten
← Zurück zu Java Academy