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
- 2B Dizilerin Temelleri ve İç İçe Dolaşma
- Düzensiz Diziler ve Tablo Biçimlendirme
- Satır/Sütun Maksimumları, Transpoz ve Biçimlendirme
- 2B Mini Proje: Not Defteri
- Yardımcı Sınıf Olarak 2B Araçlar (Yeniden Düzenleme)
- 2B Veri Temizleme ve Doğrulama