"Também quero falar sobre o método String.format ."

"É um método estático da classe String , mas é muito útil. Deixe-me fazer uma abordagem indireta."

"Se você precisa exibir várias variáveis ​​em uma linha de texto, como você faria isso?"

"Que texto?"

"Isto, por exemplo:"

Dadas as seguintes variáveis:
String name = "Bender";
int age = 12;
String friend = "Fry";
int weight = 200;
Saída necessária:
User = {name: Bender, age: 12 years, friend: Fry, weight: 200 kg.}

"Eu faria algo assim:"

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

"Não é muito legível, não é?"

"Eu acho que está tudo bem."

"Mas se você tiver nomes de variáveis ​​longos ou precisar chamar métodos para obter dados, não seria muito legível:"

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

"Bem, se fosse esse o caso, então, sim, não seria muito legível."

"O fato é que isso acontece o tempo todo em programas reais, então quero mostrar como você pode simplificar sua vida com o método String.format."

"Por favor, diga-me rapidamente, que tipo de método mágico é esse?"

"Você pode escrever o código acima assim:"

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

"O primeiro parâmetro do método String.format é uma string de formato que contém caracteres especiais (%s, %d) sempre que queremos colocar valores."

"Após a string de formato, passamos os valores que irão substituir os caracteres %s e %d."

"Se precisarmos inserir uma string, escrevemos %s; se precisarmos de um número, usamos %d."

"Será mais fácil ver isso em um exemplo:"

Exemplo
String s = String.format("a = %d, b = %d, c = %d", 1, 4, 3);
Resultado:
s será igual a «a = 1, b = 4, c = 3»

"Sim, isso é muito conveniente."

"E você também pode fazer assim:"

Exemplo
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) );
Saída:
Warning! a = -1, b = 4, c = 3

"Hmm. Esse é um método realmente útil. Obrigado, Ellie."

"Se você quiser usar outros tipos de dados com o método format, aqui está uma tabela que ajudará:"

Símbolo Tipo
%s Corda
%d inteiros: int, long, etc.
%f números reais: float, double
%b boleano
%c Caracteres
%t Data
%% Sinal de porcentagem %

"Na verdade, esses especificadores de formato também têm suas próprias configurações e subconfigurações."

"Mas isso é o suficiente para você começar. Se não, aqui está um link para a documentação oficial:"

Link para material adicional