0Pricing
Java Academy · Ders

Düzensiz Diziler ve Tablo Biçimlendirme

Düzensiz 2B dizileri yönetin ve sütun başına genişlik kullanarak hizalı tablolar yazdırın; örnek, Scanner kullanmadan örnek bir matris oluşturur.

Düzensiz Diziler ve Tablo Biçimlendirme, CoddyKit'te ücretsiz bir Java Academy dersidir. Bu, 6 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Java Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Java Academy kursu toplamda 6 dersten oluşur.

Düzensiz Dizi Kavramı

Düzensiz 2B diziler: her satırın uzunluğu farklı olabilir. Satırları ayrı ayrı ele alın ve ortak bir sütun sayısını asla varsaymayın.

Düzensiz Dizi Oluşturma

Satırları farklı uzunluklarda ayırarak düzensiz bir dizi oluşturun. İleti nedenini açıklar: yalnızca her satırın gerektirdiği kadar sütuna ihtiyacımız vardır.

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

Güvenli Yineleme

Her satır için m[r].length kullanarak güvenli biçimde yineleme yapın. İç döngünün uzunluğu satıra göre değişebilir.

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

Sütun Genişlikleri

Hizalı sütunları yazdırmak için tüm satırları tarayarak mevcut her sütunun genişliğini hesaplayın.

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

Hizalı Yazdırma

Her değerin başına, sütun genişliğine ulaşana kadar boşluk ekleyin; ardından satırı tek bir dizi olarak yazdırın.

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

Girdisiz Örnek

Çalıştırın: Bu örnek, kod içinde düzensiz bir matris oluşturur, sütun genişliklerini hesaplar ve hizalı bir tablo yazdırır; girdi gerekmez.

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

Düzensiz Yineleme Kontrolü

Hızlı kontrol: Düzensiz bir matristeki her öğe üzerinde güvenli biçimde yineleme yapan iç içe döngü hangisidir?

Özet ve Sonraki Adım

Özet: Düzensiz diziler oluşturdunuz, satır bazındaki uzunluklarla güvenli biçimde yineleme yaptınız, sütun genişliklerini hesapladınız ve Scanner kullanmadan hizalı tablolar yazdırdınız.

Sonraki adım: Satır/sütun maksimumlarını ve bir matrisin transpozunu inceleyin.

Sıkça Sorulan Sorular

“Düzensiz Diziler ve Tablo Biçimlendirme” dersi ücretsiz mi?

Evet — “Düzensiz Diziler ve Tablo Biçimlendirme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Java Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Java Academy kursu toplamda 6 dersten oluşur.

“Düzensiz Diziler ve Tablo Biçimlendirme” dersinde ne öğreneceğim?

Düzensiz 2B dizileri yönetin ve sütun başına genişlik kullanarak hizalı tablolar yazdırın; örnek, Scanner kullanmadan örnek bir matris oluşturur. Java Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Java Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Java Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 6 dersinin 2. dersidir.

“Düzensiz Diziler ve Tablo Biçimlendirme” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Java Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Java Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. 2B Dizilerin Temelleri ve İç İçe Dolaşma
  2. Düzensiz Diziler ve Tablo Biçimlendirme
  3. Satır/Sütun Maksimumları, Transpoz ve Biçimlendirme
  4. 2B Mini Proje: Not Defteri
  5. Yardımcı Sınıf Olarak 2B Araçlar (Yeniden Düzenleme)
  6. 2B Veri Temizleme ve Doğrulama
← Java Academy Sayfasına Dön