„Vreau să vă spun și despre metoda String.format ”.
„Este o metodă statică a clasei String , dar este foarte utilă. Permiteți-mi să iau o abordare indirectă.”
„Dacă trebuie să afișați mai multe variabile pe o singură linie de text, cum ați proceda?”
"Ce text?"
„Asta, de exemplu:”
String name = "Bender";
int age = 12;
String friend = "Fry";
int weight = 200;
User = {name: Bender, age: 12 years, friend: Fry, weight: 200 kg.}
„Aș face așa ceva:”
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.}");
— Nu foarte lizibil, nu?
— Cred că e în regulă.
„Dar dacă aveți nume lungi de variabile sau trebuie să apelați metode pentru a obține date, atunci nu ar fi foarte ușor de citit:”
System.out.println("User = {name: " + user.getName() + ", age: " + user.getAge() + " years, friend: " + user.getFriends().get(0) + ", weight: " + user.getExtraInformation().getWeight() + " kg.}");
— Ei bine, dacă ar fi așa, atunci da, n-ar fi foarte lizibil.
„Adevărul este că acest lucru se întâmplă tot timpul în programele reale, așa că vreau să vă arăt cum vă puteți simplifica viața cu metoda String.format.”
„Te rog spune-mi repede, ce fel de metodă magică este aceasta?”
„Puteți scrie codul de mai sus astfel:”
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);
„ Primul parametru al metodei String.format este un șir de format care conține caractere speciale (%s, %d) oriunde dorim să punem valori.”
„După șirul de format, trecem valorile care vor înlocui caracterele %s și %d.”
„Dacă trebuie să inserăm un șir, atunci scriem %s; dacă avem nevoie de un număr, atunci folosim %d.”
„Va fi mai ușor să vezi asta într-un exemplu:”
String s = String.format("a = %d, b = %d, c = %d", 1, 4, 3);
s va fi egal cu «a = 1, b = 4, c = 3»
— Da, e foarte convenabil.
„Și o poți face și așa:”
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. Aceasta este o metodă cu adevărat utilă. Mulțumesc, Ellie."
„Dacă doriți să utilizați alte tipuri de date cu metoda formatului, iată un tabel care vă va ajuta:”
Simbol | Tip |
---|---|
%s | Şir |
%d | numere întregi: int, long etc. |
%f | numere reale: float, double |
%b | boolean |
%c | char |
%t | Data |
%% | semn de procente % |
„De fapt, acești specificatori de format au și propriile setări și subsetări.”
„Dar acest lucru este suficient pentru a începe. Dacă nu, iată un link către documentația oficială:”
GO TO FULL VERSION