„Искам също да ви разкажа за метода String.format .“

„Това е статичен метод на класа String , но е много полезен. Нека използвам заобиколен подход.“

„Ако трябва да покажете няколко променливи на един ред текст, How бихте го направor?“

„Какъв текст?“

"Това например:"

При следните променливи:
String name = "Bender";
int age = 12;
String friend = "Fry";
int weight = 200;
Необходим изход:
User = {name: Bender, age: 12 years, friend: Fry, weight: 200 kg.}

„Бих го направил нещо подобно:“

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.}");

— Не е много четливо, нали?

— Мисля, че е добре.

„Но ако имате дълги имена на променливи or трябва да извикате методи, за да получите данни, тогава няма да е много четливо:“

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

— Е, ако беше така, тогава, да, нямаше да се чете много.

„Факт е, че това се случва през цялото време в реални програми, така че искам да ви покажа How можете да опростите живота си с метода String.format.“

"Моля, кажете ми бързо, що за магически метод е това?"

„Можете да напишете codeа по-горе така:“

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);

" Първият параметър на метода String.format е низ за форматиране, който съдържа специални знаци (%s, %d) навсякъде, където искаме да поставим стойности."

„След форматиращия низ предаваме стойностите, които ще заменят символите %s и %d.“

"Ако трябва да вмъкнем низ, тогава пишем %s; ако имаме нужда от число, тогава използваме %d."

„Ще бъде по-лесно да видите това в пример:“

Пример
String s = String.format("a = %d, b = %d, c = %d", 1, 4, 3);
Резултат:
s ще бъде равно на «a = 1, b = 4, c = 3»

— Да, това е много удобно.

„И можете да го направите и така:“

Пример
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) );
Изход:
Warning! a = -1, b = 4, c = 3

"Хм. Това е наистина полезен метод. Благодаря, Ели."

„Ако искате да използвате други типове данни с метода на форматиране, ето table, която ще ви помогне:“

Символ Тип
низ
цели числа: int, long и др.
%f реални числа: float, double
%b булево
%° С въглен
%T Дата
%% Знак за процент %

„Всъщност тези спецификатори на формат също имат свои собствени настройки и поднастройки.“

„Но това е достатъчно, за да започнете. Ако не, ето връзка към официалната documentация:“

Линк към допълнителен материал