"Voglio anche parlarti del metodo String.format ."

"È un metodo statico della classe String , ma è molto utile. Consentitemi di adottare un approccio indiretto."

"Se hai bisogno di visualizzare diverse variabili su una riga di testo, come lo faresti?"

"Quale testo?"

"Questo, per esempio:"

Date le seguenti variabili:
String name = "Bender";
int age = 12;
String friend = "Fry";
int weight = 200;
Uscita richiesta:
User = {name: Bender, age: 12 years, friend: Fry, weight: 200 kg.}

"Lo farei in questo modo:"

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

"Non molto leggibile, vero?"

"Penso che vada bene."

"Ma se hai nomi di variabili lunghi o devi chiamare metodi per ottenere dati, allora non sarebbe molto leggibile:"

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

"Beh, se così fosse, allora, sì, non sarebbe molto leggibile."

"Il fatto è che questo accade sempre nei programmi reali, quindi voglio mostrarti come puoi semplificarti la vita con il metodo String.format."

"Per favore dimmi velocemente, che tipo di metodo magico è questo?"

"Puoi scrivere il codice sopra in questo modo:"

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

"Il primo parametro del metodo String.format è una stringa di formato che contiene caratteri speciali (%s, %d) ovunque vogliamo inserire valori."

"Dopo la stringa di formato, passiamo i valori che sostituiranno i caratteri %s e %d."

"Se abbiamo bisogno di inserire una stringa, allora scriviamo %s; se abbiamo bisogno di un numero, allora usiamo %d."

"Sarà più facile vederlo in un esempio:"

Esempio
String s = String.format("a = %d, b = %d, c = %d", 1, 4, 3);
Risultato:
s sarà uguale a «a = 1, b = 4, c = 3»

"Sì, è molto conveniente."

"E puoi anche farlo in questo modo:"

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

"Hmm. Questo è un metodo davvero utile. Grazie, Ellie."

"Se desideri utilizzare altri tipi di dati con il metodo del formato, ecco una tabella che ti aiuterà:"

Simbolo Tipo
%S Corda
%D numeri interi: int, long, ecc.
%F numeri reali: float, double
%B booleano
%C char
%T Data
%% Segno di percentuale %

"In realtà, anche questi identificatori di formato hanno le proprie impostazioni e sottoimpostazioni."

"Ma questo è sufficiente per iniziare. In caso contrario, ecco un link alla documentazione ufficiale:"

Collegamento a materiale aggiuntivo