String.format
Tworzenie sformatowanych ciągów
String.format to bezpłatna lekcja Java Academy na CoddyKit. To lekcja 3 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.
Formatowanie bez wyświetlania
printf wysyła tekst bezpośrednio do konsoli. Czasami jednak potrzebny jest sformatowany tekst jako obiekt String, aby go zapisać, zwrócić lub ponownie wykorzystać.
String.format służy dokładnie do tego: stosuje te same zasady, ale zwraca wartość zamiast ją wyświetlać.
Pierwsze użycie String.format
String.format wykorzystuje te same symbole zastępcze co printf. Tworzy nowy napis i zwraca go.
W tym przypadku wynik jest zapisywany w msg, a następnie wyświetlany.
public class Main {
public static void main(String[] args) {
String msg = String.format("Hello, %s!", "World");
System.out.println(msg);
}
}Te same specyfikatory
Obowiązuje wszystko, czego już się Państwo nauczyli: %d, %f, %.2f, szerokości i flagi działają również w String.format.
Jedyna różnica polega na tym, że wynik jest zwracany, a nie wyświetlany.
public class Main {
public static void main(String[] args) {
String s = String.format("%s: %.2f", "Price", 9.5);
System.out.println(s);
}
}Przechowywanie wyniku
Ponieważ metoda zwraca obiekt String, można zapisać go w zmiennej, połączyć z innym tekstem lub przekazać do innej metody.
Jest to przydatne podczas tworzenia komunikatów krok po kroku.
public class Main {
public static void main(String[] args) {
String label = String.format("#%03d", 7);
System.out.println("ID " + label);
}
}Zwracanie sformatowanego tekstu
Metoda może używać String.format do zwracania uporządkowanego napisu. Dzięki temu logika formatowania znajduje się w jednym miejscu.
Poniżej metoda greet zwraca sformatowane powitanie.
public class Main {
static String greet(String name) {
return String.format("Welcome, %s!", name);
}
public static void main(String[] args) {
System.out.println(greet("Mia"));
}
}Brak automatycznego znaku nowej linii
Podobnie jak printf, String.format nie dodaje znaku nowej linii, chyba że w łańcuchu formatującym zostanie umieszczone \n.
Jeśli wynik zostanie wyświetlony za pomocą println, ta metoda doda podział wiersza.
public class Main {
public static void main(String[] args) {
String s = String.format("Line one");
System.out.println(s);
}
}Wiele wartości
Można przekazać tyle argumentów, ile jest symboli zastępczych. Wypełniają one miejsca od lewej do prawej, tak samo jak w printf.
Ułatwia to utworzenie jednego napisu zawierającego cały wiersz danych.
public class Main {
public static void main(String[] args) {
String row = String.format("%s | %d | %.1f", "Tea", 3, 2.5);
System.out.println(row);
}
}Ponowne używanie formatu
Ponieważ łańcuch formatujący jest zwykłym tekstem, można stosować go wielokrotnie w pętli, aby tworzyć spójne napisy.
Każde wywołanie zwraca nowy napis zawierający nowe wartości.
public class Main {
public static void main(String[] args) {
for (int i = 1; i <= 3; i++) {
System.out.println(String.format("Item %d", i));
}
}
}printf wewnętrznie używa format
Wewnętrznie System.out.printf(fmt, args) działa podobnie jak wyświetlenie wyniku String.format(fmt, args).
Wybór między nimi zależy więc od tego, czy tekst ma zostać wyświetlony od razu, czy zachowany do późniejszego użycia.
Tworzenie logów i etykiet
String.format jest przydatny przy tworzeniu wierszy logów, etykiet interfejsu użytkownika i nazw plików, gdy wymagany jest precyzyjny wzorzec.
Umieszczenie formatu w jednym miejscu sprawia, że jedna zmiana aktualizuje każdy komunikat.
public class Main {
public static void main(String[] args) {
int code = 404;
String log = String.format("[ERROR %d] not found", code);
System.out.println(log);
}
}Obowiązują te same zasady dotyczące typów
Zasady dopasowywania specyfikatora do wartości są identyczne: %d wymaga liczby całkowitej, %f wartości zmiennoprzecinkowej, a niezgodność powoduje wyjątek w czasie działania programu.
Przed uruchomieniem programu należy dokładnie sprawdzić dopasowanie.
Szybki test
Czym różni się String.format od printf?
Podsumowanie
String.format korzysta z zasad printf, ale zwraca obiekt String, który można zapisać, zwrócić lub ponownie wykorzystać.
W następnej części połączą Państwo szerokości i wyrównanie, aby tworzyć uporządkowane tabele.
Często zadawane pytania
Czy lekcja „String.format” jest bezpłatna?
Tak — pełny tekst „String.format” 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 „String.format”?
Tworzenie sformatowanych ciągów Ć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 3 z 4.
Ile czasu zajmuje lekcja „String.format”?
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.