"Je veux aussi vous parler de la méthode String.format ."

"C'est une méthode statique de la classe String , mais elle est très utile. Permettez-moi d'adopter une approche détournée."

"Si vous avez besoin d'afficher plusieurs variables sur une seule ligne de texte, comment feriez-vous ?"

« Quel texte ? »

"Ceci, par exemple :"

Étant donné les variables suivantes :
String name = "Bender";
int age = 12;
String friend = "Fry";
int weight = 200;
Sortie requise :
User = {name: Bender, age: 12 years, friend: Fry, weight: 200 kg.}

"Je ferais quelque chose comme ça :"

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

« Pas très lisible, n'est-ce pas ?

"Je pense que ça va."

"Mais si vous avez de longs noms de variables ou si vous avez besoin d'appeler des méthodes pour obtenir des données, alors ce ne serait pas très lisible :"

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

"Eh bien, si c'était le cas, alors, oui, ce ne serait pas très lisible."

"Le fait est que cela se produit tout le temps dans de vrais programmes, donc je veux vous montrer comment vous pouvez vous simplifier la vie avec la méthode String.format."

« S'il vous plaît, dites-moi rapidement, quel genre de méthode magique est-ce ? »

"Vous pouvez écrire le code ci-dessus comme ceci :"

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

"Le premier paramètre de la méthode String.format est une chaîne de format qui contient des caractères spéciaux (%s, %d) partout où nous voulons mettre des valeurs."

"Après la chaîne de format, nous passons les valeurs qui remplaceront les caractères %s et %d."

"Si nous devons insérer une chaîne, nous écrivons %s ; si nous avons besoin d'un nombre, nous utilisons %d."

"Il sera plus facile de voir cela dans un exemple :"

Exemple
String s = String.format("a = %d, b = %d, c = %d", 1, 4, 3);
Résultat:
s sera égal à "a = 1, b = 4, c = 3"

« Ouais, c'est très pratique.

"Et vous pouvez aussi le faire comme ceci :"

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

"Hmm. C'est une méthode vraiment utile. Merci, Ellie."

"Si vous souhaitez utiliser d'autres types de données avec la méthode format, voici un tableau qui vous aidera :"

Symbole Taper
%s Chaîne
%d entiers : int, long, etc.
%F nombres réels : float, double
%b booléen
%c carboniser
%t Date
%% Signe pourcentage %

"En fait, ces spécificateurs de format ont également leurs propres paramètres et sous-paramètres."

"Mais c'est suffisant pour démarrer. Sinon, voici un lien vers la documentation officielle :"

Lien vers du matériel supplémentaire