"Jag vill också berätta om String.format -metoden."

"Det är en statisk metod av klassen String , men den är väldigt användbar. Låt mig ta en omvägsstrategi."

"Om du behöver visa flera variabler på en textrad, hur skulle du göra det?"

"Vilken text?"

"Detta, till exempel:"

Med tanke på följande variabler:
String name = "Bender";
int age = 12;
String friend = "Fry";
int weight = 200;
Obligatorisk utdata:
User = {name: Bender, age: 12 years, friend: Fry, weight: 200 kg.}

"Jag skulle göra något så här:"

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

"Inte särskilt läsbar, eller hur?"

"Jag tycker att det är okej."

"Men om du har långa variabelnamn eller om du behöver anropa metoder för att få data, så skulle det inte vara särskilt läsbart:"

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

"Jaha, om det vore fallet, så, ja, det skulle inte vara särskilt läsbart."

"Faktum är att detta händer hela tiden i riktiga program, så jag vill visa dig hur du kan förenkla ditt liv med String.format-metoden."

"Snälla berätta snabbt, vad är det här för magisk metod?"

"Du kan skriva koden ovan så här:"

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 -metodens första parameter är en formatsträng som innehåller specialtecken (%s, %d) varhelst vi vill placera värden."

"Efter formatsträngen skickar vi värdena som kommer att ersätta tecknen %s och %d."

"Om vi ​​behöver infoga en sträng så skriver vi %s; om vi behöver ett nummer så använder vi %d."

"Det blir lättare att se detta i ett exempel:"

Exempel
String s = String.format("a = %d, b = %d, c = %d", 1, 4, 3);
Resultat:
s kommer att vara lika med «a = 1, b = 4, c = 3»

"Ja, det är väldigt bekvämt."

"Och du kan också göra så här:"

Exempel
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) );
Produktion:
Warning! a = -1, b = 4, c = 3

"Hmm. Det är en väldigt användbar metod. Tack, Ellie."

"Om du vill använda andra datatyper med formatmetoden, här är en tabell som hjälper:"

Symbol Typ
%s Sträng
%d heltal: int, long, etc.
%f reella tal: flytande, dubbel
%b booleskt
%c röding
%t Datum
%% Procent tecken %

"Faktiskt har de här formatspecifikationerna också sina egna inställningar och underinställningar."

"Men det här räcker för att du ska komma igång. Om inte, här är en länk till den officiella dokumentationen:"

Länk till ytterligare material