Wyrównywanie tabel
Formatowanie kolumn danych
Wyrównywanie tabel to bezpłatna lekcja Java Academy na CoddyKit. To lekcja 4 z 4. 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 4 lekcji w sumie.
Dlaczego wyrównanie?
Podczas wyświetlania wierszy danych nierówne kolumny są trudne do odczytania. Wyrównane kolumny pozwalają ułożyć liczby i etykiety równo jedna pod drugą.
Szerokości i flagi printf umożliwiają tworzenie czytelnych tabel bezpośrednio w konsoli.
Domyślne wyrównanie do prawej
Szerokość, taka jak %10s, rezerwuje 10 znaków i dopełnia pole z lewej strony, dlatego tekst jest wyrównany do prawej.
Liczby zachowują się tak samo, dlatego kolumny wartości układają się przy prawej krawędzi.
public class Main {
public static void main(String[] args) {
System.out.printf("[%10s]\n", "hi");
}
}Wyrównanie do lewej za pomocą minusa
Aby wyrównać tekst do lewej strony pola, należy dodać flagę -. %-10s umieszcza tekst po lewej stronie i dopełnia pole z prawej.
Wyrównanie do lewej doskonale sprawdza się w przypadku etykiet i nazw.
public class Main {
public static void main(String[] args) {
System.out.printf("[%-10s]\n", "hi");
}
}Dwie kolumny
Połączenie etykiety wyrównanej do lewej z liczbą wyrównaną do prawej pozwala utworzyć wiersz. %-10s%5d zapewnia nazwę o szerokości 10 znaków i liczbę o szerokości 5 znaków.
Powtórzenie tego samego formatu dla każdego wiersza sprawia, że kolumny pozostają wyrównane.
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);
}
}Prosta tabela
Użycie tego samego łańcucha formatującego dla nagłówka i każdego wiersza danych zapewnia wyrównanie wszystkich elementów.
W tym przypadku trzy wiersze korzystają z jednego wzorca, dzięki czemu kolumny pozostają uporządkowane.
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);
}
}Wyrównywanie miejsc dziesiętnych
W przypadku kwot lub pomiarów można połączyć szerokość i precyzję: %8.2f wyrównuje liczbę do prawej w polu o szerokości 8 znaków i wyświetla dwa miejsca dziesiętne.
Przecinki dziesiętne układają się pionowo w kolejnych wierszach.
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);
}
}Nagłówek i liczby
Połącz kolumny napisów i liczb w jednym wierszu. Etykieta wyrównana do lewej i cena wyrównana do prawej tworzą naturalnie wyglądającą całość.
Ten wzorzec jest podstawą większości raportów konsolowych.
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);
}
}Wybór szerokości kolumn
Należy wybrać szerokość co najmniej równą długości najdłuższej wartości, ponieważ w przeciwnym razie tekst przepełni kolumnę i zaburzy wyrównanie.
Jeśli wartość jest szersza niż pole, printf wypisze ją w całości i zignoruje szerokość.
public class Main {
public static void main(String[] args) {
System.out.printf("[%3s]\n", "toolong");
}
}Iterowanie po wierszach
Pętla i jeden wspólny łańcuch formatu ułatwiają wygenerowanie całej tabeli.
Każdy obieg wypisuje jeden wyrównany wiersz, więc dodawanie danych nigdy nie zaburza układu.
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]);
}
}
}Łączenie z String.format
Każdy wyrównany wiersz można utworzyć za pomocą String.format, jeśli tekst ma być gotowy przed jego wypisaniem.
Reguły szerokości i wyrównania są identyczne.
public class Main {
public static void main(String[] args) {
String row = String.format("%-8s%5d", "Total", 99);
System.out.println(row);
}
}Tabulatory a szerokości
Kolumny można rozdzielać tabulatorami \t, ale położenie tabulatorów może się różnić, a długie wartości zaburzają wyrównanie.
Stałe szerokości, takie jak %-10s, zapewniają niezawodne i przewidywalne kolumny, dlatego w tabelach należy preferować to rozwiązanie.
Szybkie sprawdzenie
Jaki format wyrównuje nazwę do lewej w polu o szerokości 12 znaków?
Podsumowanie
Utworzono wyrównane tabele, używając pól szerokości, flagi - do wyrównania do lewej oraz %8.2f do uporządkowania kolumn dziesiętnych.
Dzięki printf, String.format i wyrównaniu można czytelnie formatować dowolne dane wyjściowe konsoli.
Często zadawane pytania
Czy lekcja „Wyrównywanie tabel” jest bezpłatna?
Tak — pełny tekst „Wyrównywanie 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 4 lekcji w sumie.
Co nauczysz się w „Wyrównywanie tabel”?
Formatowanie kolumn danych Ć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 4 z 4.
Ile czasu zajmuje lekcja „Wyrównywanie 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
- Podstawy printf
- Formaty liczbowe i dziesiętne
- String.format
- Wyrównywanie tabel