– 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:"
String name = "Bender";
int age = 12;
String friend = "Fry";
int weight = 200;
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:"
String s = String.format("a = %d, b = %d, c = %d", 1, 4, 3);
s egyenlő lesz "a = 1, b = 4, c = 3"
– Igen, ez nagyon kényelmes.
"És megteheted így is:"
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
"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:"