– A String.format metódusról is szeretnék mesélni .

"Ez a String osztály statikus metódusa, de nagyon hasznos. Hadd vegyek egy körforgalmat."

"Ha több változót kell megjeleníteni egy szövegsorban, hogyan tennéd?"

– Milyen szöveg?

"Ez például:"

Adott a következő változók:
String name = "Bender";
int age = 12;
String friend = "Fry";
int weight = 200;
Szükséges kimenet:
User = {name: Bender, age: 12 years, friend: Fry, weight: 200 kg.}

– Valami ilyesmit csinálnék:

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

– Nem túl olvasmányos, igaz?

– Szerintem rendben van.

"De ha hosszúak a változóneveid, vagy metódusokat kell hívnod az adatok lekéréséhez, akkor az nem igazán olvasható:"

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

– Nos, ha ez így lenne, akkor igen, nem lenne túl olvasmányos.

"A tény az, hogy ez mindig megtörténik a valódi programokban, ezért szeretném megmutatni, hogyan egyszerűsítheted le az életed a String.format módszerrel."

– Kérem, mondja meg gyorsan, miféle varázslatos módszer ez?

"A fenti kódot így írhatod:"

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

"A String.format metódus első paramétere egy formátumkarakterlánc, amely speciális karaktereket (%s, %d) tartalmaz, ahol értékeket szeretnénk elhelyezni."

"A formátum karakterlánc után adjuk át azokat az értékeket, amelyek lecserélik a %s és %d karaktert."

"Ha karakterláncot kell beszúrnunk, akkor %s-t írunk, ha számra van szükségünk, akkor %d-t használunk."

"Ezt könnyebb lesz látni egy példán:"

Példa
String s = String.format("a = %d, b = %d, c = %d", 1, 4, 3);
Eredmény:
s egyenlő lesz "a = 1, b = 4, c = 3"

– Igen, ez nagyon kényelmes.

"És megteheted így is:"

Példa
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) );
Kimenet:
Warning! a = -1, b = 4, c = 3

"Hmm. Ez egy igazán hasznos módszer. Köszönöm, Ellie."

"Ha más adattípusokat szeretne használni a formázási módszerrel, itt egy táblázat segít:"

Szimbólum típus
%s Húr
%d egész számok: int, long stb.
%f valós számok: float, double
%b logikai érték
%c char
%t Dátum
%% százalékjel %

"Valójában ezeknek a formátum-meghatározóknak is megvannak a saját beállításaik és részbeállításai."

"De ez elég a kezdéshez. Ha nem, itt egy link a hivatalos dokumentációhoz:"

Link a kiegészítő anyagokhoz