"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:"

Gitt følgende variabler:
String name = "Bender";
int age = 12;
String friend = "Fry";
int weight = 200;
Nødvendig utgang:
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:"

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

"Ja, det er veldig praktisk."

"Og du kan også gjøre det slik:"

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) );
Produksjon:
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:"

Link til tilleggsmateriell