"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:"
String name = "Bender";
int age = 12;
String friend = "Fry";
int weight = 200;
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:"
String s = String.format("a = %d, b = %d, c = %d", 1, 4, 3);
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:"
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. 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:"