13. JAVA – wyświetlanie danych metodą printf


Metoda printf pozwala na wyświetlanie danych w określonym formacie.
Dane wyświetlane tą metodą są formatowane na bazie szablonu i zestawu argumentów.

System.out.printf("Hello %s %n", "World");

W powyższym przykładzie możemy zauważyć, iż korzystamy ze znaku %, który określa format danych składający się na pewien schemat.
Następnie, po przecinku wypisujemy kolejne argumenty, które będą podstawiane do konkretnego szablonu.
Możliwe formaty to:
%d – format dla liczb całkowitych
%f – format dla liczb rzeczywistych
%s – format dla ciągów znaków
%b – format dla typu logicznego
%n – znak nowej linii
%t.. – format dla dat, który jest rozszerzany o następne formaty:
        A lub a – pełna nazwa dnia tygodnia lub skrócona
        B lub b – pełna nazwa miesiąca lub 3 literowa nazwa miesiąca
        c – cała data i czas
        F – data w formacie 2021-05-27
        T – godzina w formcie 24h / R – bez sekund / H – 2cyfrowa / k – bez zer
        r – godzina w formacie 12h / p – pm/am
        M – minuty 2cyfrowo
        S – sekundy 2cyfrowo
        Y lub y – rok 4cyfrowy lub 2cyfrowy
        m – 2cyfrowy miesiąc
        d lub e – dzień 2cyfrowy lub bez zer
        s – znacznik czasowy/timestamp
        Q – milisekundy
1..n$ – możemy wskazać na konkretny argument do formatowania

Przykłady:

System.out.printf("%d %f %s %b %n", 10, 1.22f, "tekst", true);//10 1,220000 tekst true
System.out.printf("%tA %tb %tc %n", new Date(), new Date(), new Date());//czwartek maj czw. maj 27 20:25:17 CEST 2021
//aby nie powtarzać tego samego argumentu kilka razy, możemy wskazywać konkretny argument
System.out.printf("%1$tA %1$tb %1$tc %n", new Date());//czwartek maj czw. maj 27 20:25:17 CEST 2021

String user = "user";
System.out.printf("Witaj %s, zostałeś zalogowany w %tA %2$tF", user, new Date());