0Pricing
Java Academy · Lekcja

Tablice postrzępione i formatowanie tabel

Nauczą się Państwo obsługiwać postrzępione tablice 2D i wyświetlać wyrównane tabele z użyciem szerokości poszczególnych kolumn; demonstracja tworzy przykładową macierz bez użycia Scanner.

Tablice postrzępione i formatowanie tabel to bezpłatna lekcja Java Academy na CoddyKit. To lekcja 2 z 6. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Java Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Java Academy zawiera 6 lekcji w sumie.

Koncepcja tablic nieregularnych

Nieregularne tablice 2D: każdy wiersz może mieć inną długość. Należy traktować wiersze oddzielnie i nigdy nie zakładać wspólnej liczby kolumn.

Tworzenie tablicy nieregularnej

Utwórz tablicę nieregularną, przydzielając wierszom różne długości. Komunikat wyjaśnia, dlaczego: potrzebujemy tylko tylu kolumn, ile wymaga każdy wiersz.

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
    }
  }
}

Bezpieczna iteracja

Iteruj bezpiecznie, używając m[r].length dla każdego wiersza. Długość wewnętrznej pętli może być różna dla poszczególnych wierszy.

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
    }
  }
}

Szerokości kolumn

Aby wypisać wyrównane kolumny, oblicz szerokość każdej istniejącej kolumny, przeglądając wszystkie wiersze.

// 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;
		  }
		}

Wyrównywanie wydruku

Dopełnij każdą wartość z lewej strony, aż osiągnie szerokość kolumny, a następnie wypisz wiersz jako pojedynczy ciąg znaków.

// 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);
		}

Demonstracja bez danych wejściowych

Uruchom program: Ta demonstracja tworzy w kodzie nieregularną macierz, oblicza szerokości kolumn i wypisuje wyrównaną tabelę — dane wejściowe nie są wymagane.

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);
  }
}

Sprawdzenie iteracji po tablicy nieregularnej

Szybkie sprawdzenie: Która zagnieżdżona pętla bezpiecznie przechodzi przez każdy element nieregularnej macierzy?

Podsumowanie i następny krok

Podsumowanie: Utworzyli Państwo tablice nieregularne, bezpiecznie iterowali z użyciem długości poszczególnych wierszy, obliczali szerokości kolumn i wypisywali wyrównane tabele — bez użycia Scanner.

Następny krok: Poznajmy maksima wierszy i kolumn oraz transpozycję macierzy.

Często zadawane pytania

Czy lekcja „Tablice postrzępione i formatowanie tabel” jest bezpłatna?

Tak — pełny tekst „Tablice postrzępione i formatowanie tabel” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Java Academy, przejdź na CoddyKit PRO. Kurs Java Academy zawiera 6 lekcji w sumie.

Co nauczysz się w „Tablice postrzępione i formatowanie tabel”?

Nauczą się Państwo obsługiwać postrzępione tablice 2D i wyświetlać wyrównane tabele z użyciem szerokości poszczególnych kolumn; demonstracja tworzy przykładową macierz bez użycia Scanner. Ćwiczysz Java Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Java Academy?

Nie wymagamy żadnego doświadczenia. Java Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 6.

Ile czasu zajmuje lekcja „Tablice postrzępione i formatowanie tabel”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Java Academy?

Tak. Każda lekcja Java Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Podstawy tablic 2D i zagnieżdżona iteracja
  2. Tablice postrzępione i formatowanie tabel
  3. Maksima wierszy i kolumn, transpozycja i formatowanie
  4. Projekt 2D: dziennik ocen
  5. Narzędzia 2D jako klasa pomocnicza (refaktoryzacja)
  6. Czyszczenie i walidacja danych 2D
← Powrót do Java Academy