"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:"
String name = "Bender";
int age = 12;
String friend = "Fry";
int weight = 200;
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:"
String s = String.format("a = %d, b = %d, c = %d", 1, 4, 3);
s será igual a «a = 1, b = 4, c = 3»
"Sim, isso é muito conveniente."
"E você também pode fazer assim:"
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) );
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:"
GO TO FULL VERSION