Allineamento delle tabelle
Formatti le colonne di dati
Allineamento delle tabelle è una lezione Java Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Java Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Java Academy include 4 lezioni in totale.
Perché l'allineamento?
Quando stampa righe di dati, le colonne irregolari sono difficili da leggere. Le colonne allineate dispongono numeri ed etichette ordinatamente una sotto l'altra.
Le larghezze e i flag di printf consentono di creare tabelle ordinate direttamente nella console.
Allineamento a destra predefinito
Una larghezza come %10s riserva 10 caratteri e aggiunge il riempimento a sinistra, quindi il testo viene allineato a destra.
I numeri si comportano allo stesso modo, perciò le colonne di cifre si allineano sul bordo destro.
public class Main {
public static void main(String[] args) {
System.out.printf("[%10s]\n", "hi");
}
}Allineamento a sinistra con il meno
Aggiunga il flag - per allineare a sinistra all'interno del campo. %-10s posiziona il testo a sinistra e aggiunge il riempimento a destra.
L'allineamento a sinistra è ideale per etichette e nomi.
public class Main {
public static void main(String[] args) {
System.out.printf("[%-10s]\n", "hi");
}
}Due colonne
Combini un'etichetta allineata a sinistra con un numero allineato a destra per creare una riga. %-10s%5d assegna 10 caratteri al nome e 5 al numero.
Ripeta lo stesso formato per ogni riga e le colonne risulteranno allineate.
public class Main {
public static void main(String[] args) {
System.out.printf("%-10s%5d\n", "Apples", 3);
System.out.printf("%-10s%5d\n", "Pears", 12);
}
}Una tabella semplice
Usare la stessa stringa di formato per l'intestazione e per ogni riga di dati mantiene tutto allineato.
Qui tre righe condividono uno schema, quindi le colonne rimangono ordinate.
public class Main {
public static void main(String[] args) {
String fmt = "%-8s%6d\n";
System.out.printf(fmt, "Name", 0);
System.out.printf(fmt, "Ann", 90);
System.out.printf(fmt, "Bob", 7);
}
}Allineare i decimali
Per importi o misurazioni, combini larghezza e precisione: %8.2f allinea a destra un numero di 8 caratteri con due cifre decimali.
I punti decimali si allineano verticalmente nelle diverse righe.
public class Main {
public static void main(String[] args) {
System.out.printf("%8.2f\n", 5.5);
System.out.printf("%8.2f\n", 123.4);
}
}Intestazione più numeri
Combini colonne di testo e numeriche nella stessa riga. Un'etichetta a sinistra e un prezzo allineato a destra risultano naturali insieme.
Questo schema è alla base della maggior parte dei report della console.
public class Main {
public static void main(String[] args) {
System.out.printf("%-10s%8.2f\n", "Coffee", 3.5);
System.out.printf("%-10s%8.2f\n", "Cake", 12.0);
}
}Scelta della larghezza delle colonne
Scelga una larghezza almeno pari a quella del valore più lungo, altrimenti il testo uscirà dalla colonna compromettendo l'allineamento.
Se un valore è più largo del campo, printf lo stampa per intero e ignora la larghezza.
public class Main {
public static void main(String[] args) {
System.out.printf("[%3s]\n", "toolong");
}
}Scorrimento delle righe
Un ciclo e una sola stringa di formato condivisa rendono semplice generare un'intera tabella.
A ogni iterazione viene stampata una riga allineata, quindi aggiungere dati non compromette il layout.
public class Main {
public static void main(String[] args) {
String[] names = {"Sun", "Mon", "Tue"};
int[] hrs = {8, 12, 5};
for (int i = 0; i < names.length; i++) {
System.out.printf("%-6s%4d\n", names[i], hrs[i]);
}
}
}Combinazione con String.format
Può costruire ogni riga allineata con String.format se deve ottenere il testo prima di stamparlo.
Le regole di larghezza e allineamento sono identiche.
public class Main {
public static void main(String[] args) {
String row = String.format("%-8s%5d", "Total", 99);
System.out.println(row);
}
}Tabulazioni e larghezze a confronto
Potrebbe separare le colonne con le tabulazioni \t, ma le posizioni delle tabulazioni variano e i valori lunghi compromettono l'allineamento.
Larghezze fisse come %-10s garantiscono colonne affidabili e prevedibili, quindi le preferisca nelle tabelle.
Verifica rapida
Quale formato allinea a sinistra un nome in 12 caratteri?
Riepilogo
Ha creato tabelle allineate usando i campi di larghezza, il flag - per l'allineamento a sinistra e %8.2f per colonne decimali ordinate.
Con printf, String.format e l'allineamento può formattare in modo ordinato qualsiasi output della console.
Domande Frequenti
La lezione «Allineamento delle tabelle» è gratuita?
Sì — il testo completo di «Allineamento delle tabelle» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Java Academy, passa a CoddyKit PRO. Il corso Java Academy include 4 lezioni in totale.
Cosa imparerò in «Allineamento delle tabelle»?
Formatti le colonne di dati Eserciti Java Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Java Academy?
Non è richiesta alcuna esperienza precedente. Java Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.
Quanto tempo richiede la lezione «Allineamento delle tabelle»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Java Academy?
Sì. Ogni lezione Java Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Nozioni di base di printf
- Formati numerici e decimali
- String.format
- Allineamento delle tabelle