„Chcę też opowiedzieć o metodzie String.format ”.

„Jest to statyczna metoda klasy String , ale jest bardzo użyteczna. Pozwólcie, że przyjmę podejście okrężne”.

„Jeśli potrzebujesz wyświetlić kilka zmiennych w jednym wierszu tekstu, jak byś to zrobił?”

„Jaki tekst?”

„To na przykład:”

Biorąc pod uwagę następujące zmienne:
String name = "Bender";
int age = 12;
String friend = "Fry";
int weight = 200;
Wymagane wyjście:
User = {name: Bender, age: 12 years, friend: Fry, weight: 200 kg.}

"Zrobiłbym to mniej więcej tak:"

String name = "Bender";
int age = 12;
String friend = "Fry";
int weight = 200;

System.out.println("User = {name: " + name + ", age: " + age + " years, friend: " + friend + ", weight: " + weight + " kg.}");

— Niezbyt czytelne, prawda?

"Myślę, że jest w porządku."

„Ale jeśli masz długie nazwy zmiennych lub musisz wywoływać metody w celu uzyskania danych, nie byłoby to zbyt czytelne:”

System.out.println("User = {name: " + user.getName() + ", age: " + user.getAge() + " years, friend: " + user.getFriends().get(0) + ", weight: " + user.getExtraInformation().getWeight() + " kg.}");

„Cóż, gdyby tak było, to tak, nie byłoby to zbyt czytelne”.

„Faktem jest, że w prawdziwych programach dzieje się to cały czas, więc chcę ci pokazać, jak możesz uprościć swoje życie dzięki metodzie String.format”.

„Proszę, powiedz mi szybko, co to za magiczna metoda?”

„Możesz napisać powyższy kod w ten sposób:”

String text = String.format("User = {name: %s, age: %d years, friend: %s, weight: %d kg.}",
user.getName(), user.getAge(), user.getFriends().get(0), user.getExtraInformation().getWeight())

System.out.println(text);

„ Pierwszy parametr metody String.format to łańcuch formatu zawierający znaki specjalne (%s, %d) w miejscach, w których chcemy umieścić wartości.”

„Po ciągu formatującym przekazujemy wartości, które zastąpią znaki %si %d”.

„Jeśli musimy wstawić ciąg, piszemy %s; jeśli potrzebujemy liczby, używamy %d”.

„Łatwiej będzie zobaczyć to na przykładzie:”

Przykład
String s = String.format("a = %d, b = %d, c = %d", 1, 4, 3);
Wynik:
s będzie równe «a = 1, b = 4, c = 3»

– Tak, to bardzo wygodne.

"I możesz też zrobić to tak:"

Przykład
int a = -1, b = 4, c = 3;
String template;
 if (a < 0)
  template = "Warning! a = %d, b = %d, c = %d";
 else
  template = "a = %d, b = %d, c = %d";

System.out.println(String.format(template, a, b, c) );
Wyjście:
Warning! a = -1, b = 4, c = 3

„Hmm. To naprawdę przydatna metoda. Dzięki, Ellie”.

„Jeśli chcesz używać innych typów danych z metodą formatowania, oto tabela, która pomoże:”

Symbol Typ
%S Strunowy
%D liczby całkowite: int, long itp.
%F liczby rzeczywiste: float, double
%B logiczna
%C zwęglać
%T Data
%% Znak procentu %

„W rzeczywistości te specyfikatory formatu mają również własne ustawienia i ustawienia podrzędne”.

„Ale to wystarczy, aby zacząć. Jeśli nie, oto link do oficjalnej dokumentacji:”

Link do dodatkowych materiałów