"Jeg vil også fortælle dig om String.format- metoden."

"Det er en statisk metode af String- klassen, men den er meget nyttig. Lad mig tage en rundkørselstilgang."

"Hvis du har brug for at vise flere variabler på en tekstlinje, hvordan ville du så gøre det?"

"Hvilken tekst?"

"Dette, for eksempel:"

Givet følgende variabler:
String name = "Bender";
int age = 12;
String friend = "Fry";
int weight = 200;
Påkrævet output:
User = {name: Bender, age: 12 years, friend: Fry, weight: 200 kg.}

"Jeg ville gøre det sådan her:"

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

"Ikke særlig læseværdig, vel?"

"Jeg synes, det er okay."

"Men hvis du har lange variabelnavne, eller hvis du skal kalde metoder for at få data, så ville det ikke være særlig læsbart:"

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

"Nå, hvis det var tilfældet, så, ja, det ville ikke være særlig læseligt."

"Faktum er, at dette sker hele tiden i rigtige programmer, så jeg vil gerne vise dig, hvordan du kan forenkle dit liv med String.format-metoden."

"Fortæl mig venligst hurtigt, hvad er det for en magisk metode?"

"Du kan skrive koden ovenfor sådan her:"

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ørste parameter er en formatstreng, der indeholder specialtegn (%s, %d), hvor end vi ønsker at placere værdier."

"Efter formatstrengen videregiver vi værdierne, der erstatter tegnene %s og %d."

"Hvis vi skal indsætte en streng, så skriver vi %s; hvis vi har brug for et tal, så bruger vi %d."

"Det vil være nemmere at se dette i et eksempel:"

Eksempel
String s = String.format("a = %d, b = %d, c = %d", 1, 4, 3);
Resultat:
s vil være lig med «a = 1, b = 4, c = 3»

"Ja, det er meget praktisk."

"Og du kan også gøre det sådan her:"

Eksempel
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 er en virkelig nyttig metode. Tak, Ellie."

"Hvis du vil bruge andre datatyper med formatmetoden, er her en tabel, der vil hjælpe:"

Symbol Type
%s Snor
%d heltal: int, lang osv.
%f reelle tal: flydende, dobbelt
%b boolesk
%c char
%t Dato
%% Procent tegn %

"Faktisk har disse formatspecifikationer også deres egne indstillinger og underindstillinger."

"Men dette er nok til at komme i gang. Hvis ikke, så er her et link til den officielle dokumentation:"

Link til yderligere materiale