"Ik wil je ook vertellen over de methode String.format ."

"Het is een statische methode van de klasse String , maar het is erg handig. Laat me een omweg nemen."

"Als u meerdere variabelen op één regel tekst moet weergeven, hoe zou u dat dan doen?"

"Welke tekst?"

"Dit bijvoorbeeld:"

Gegeven de volgende variabelen:
String name = "Bender";
int age = 12;
String friend = "Fry";
int weight = 200;
Vereiste uitvoer:
User = {name: Bender, age: 12 years, friend: Fry, weight: 200 kg.}

"Ik zou het ongeveer zo doen:"

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

"Niet erg leesbaar, hè?"

"Ik denk dat het goed is."

"Maar als je lange namen van variabelen hebt of als je methodes moet aanroepen om gegevens te krijgen, dan zou het niet erg leesbaar zijn:"

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

"Nou, als dat het geval was, dan zou het inderdaad niet erg leesbaar zijn."

"Feit is dat dit de hele tijd gebeurt in echte programma's, dus ik wil je laten zien hoe je je leven kunt vereenvoudigen met de String.format-methode."

"Vertel me alsjeblieft snel, wat voor soort magische methode is dit?"

"U kunt de bovenstaande code als volgt schrijven:"

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);

"De eerste parameter van de methode String.format is een opmaaktekenreeks die speciale tekens bevat (%s, %d) waar we waarden willen plaatsen."

"Na de opmaakreeks geven we de waarden door die de %s- en %d-tekens zullen vervangen."

"Als we een string moeten invoegen, schrijven we %s; als we een getal nodig hebben, gebruiken we %d."

"Het zal gemakkelijker zijn om dit in een voorbeeld te zien:"

Voorbeeld
String s = String.format("a = %d, b = %d, c = %d", 1, 4, 3);
Resultaat:
s zal gelijk zijn aan «a = 1, b = 4, c = 3»

"Ja, dat is heel handig."

"En je kunt het ook zo doen:"

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

"Hmm. Dat is een heel bruikbare methode. Bedankt, Ellie."

"Als u andere gegevenstypen wilt gebruiken met de opmaakmethode, is hier een tabel die u zal helpen:"

Symbool Type
%S Snaar
%D gehele getallen: int, long, enz.
%F reële getallen: zweven, verdubbelen
%B booleaans
%C char
%T Datum
%% procentteken %

"Eigenlijk hebben deze formaatspecificaties ook hun eigen instellingen en subinstellingen."

"Maar dit is genoeg om je op weg te helpen. Zo niet, dan is hier een link naar de officiële documentatie:"

Link naar aanvullend materiaal