"Jeg vil også fortelle deg om String.format- metoden."
"Det er en statisk metode av String- klassen, men den er veldig nyttig. La meg ta en rundkjøringsmetode."
"Hvis du trenger å vise flere variabler på én tekstlinje, hvordan ville du gjort 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 gjort det noe sånt som dette:"
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 veldig lesbart, er det?"
— Jeg synes det er greit.
"Men hvis du har lange variabelnavn eller du trenger å kalle metoder for å få data, så ville det ikke vært veldig lesbart:"
System.out.println("User = {name: " + user.getName() + ", age: " + user.getAge() + " years, friend: " + user.getFriends().get(0) + ", weight: " + user.getExtraInformation().getWeight() + " kg.}");
"Vel, hvis det var tilfelle, så, ja, det ville ikke vært veldig lesbart."
"Faktum er at dette skjer hele tiden i virkelige programmer, så jeg vil vise deg hvordan du kan forenkle livet ditt med String.format-metoden."
"Vær så snill og si meg raskt, hva slags magisk metode er dette?"
"Du kan skrive koden ovenfor slik:"
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 som inneholder spesialtegn (%s, %d) uansett hvor vi ønsker å sette verdier."
"Etter formatstrengen sender vi verdiene som vil erstatte %s og %d tegn."
"Hvis vi trenger å sette inn en streng, så skriver vi %s; hvis vi trenger et tall, bruker vi %d."
"Det vil være lettere å se dette i et eksempel:"
String s = String.format("a = %d, b = %d, c = %d", 1, 4, 3);
s vil være lik «a = 1, b = 4, c = 3»
"Ja, det er veldig praktisk."
"Og du kan også gjøre det slik:"
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 veldig nyttig metode. Takk, Ellie."
"Hvis du vil bruke andre datatyper med formatmetoden, her er en tabell som vil hjelpe:"
Symbol | Type |
---|---|
%s | String |
%d | heltall: int, lang osv. |
%f | reelle tall: flyte, doble |
%b | boolsk |
%c | røye |
%t | Dato |
%% | Prosenttegn % |
"Egentlig har disse formatspesifikatorene også sine egne innstillinger og underinnstillinger."
"Men dette er nok til å komme i gang. Hvis ikke, her er en lenke til den offisielle dokumentasjonen:"