O básico sobre Java String Format
Neste post vou mostrar o que é String.format()
em Java com exemplos práticos
Última atualização em: | 28338 Visualizações
O método format
da classe String nada mais é que um método estatico utilizado para formatar textos.
Como exemplo, imagine que precisa realizar a concatenação do texto:
Olá <José>, seu agendamento foi marcado para dia <05> de <Janeiro>.
Onde, os valores que estão entre <>
serão subistituídos por variáveis. Então normalmente teriamos algo assim:
String message = "Olá "+ name +", seu agendamento foi marcado para dia "+ day +" de "+ month +".";
Note que fica um código verboso, dificil para ler e escrever.
Então, como alternativa, podemos utilizar o String.format()
, que permite formatar um texto de forma que fique mais fácil para ler e para escrever, veja:
String message = String.format("Olá %s, seu agendamento foi marcado para dia %s de %s.", name, day, month);
Note que montamos a frase em um único texto e após os caracteres
%s
serão substituído pelos valores referentes as variáveis informados posteriormente, na mesma ordem.
Caso queira testar, classe completa é essa:
import static org.junit.jupiter.api.Assertions.assertEquals;
import org.junit.jupiter.api.Test;
public class StringFormatTest {
@Test
public void testBasic() {
String name = "José";
String day = "02";
String month = "Janeiro";
String message = "Olá "+ name +", seu agendamento foi marcado para dia "+ day +" de "+ month +".";
assertEquals("Olá José, seu agendamento foi marcado para dia 02 de Janeiro.", message);
}
@Test
public void testStringFormat() {
String name = "José";
String day = "02";
String month = "Janeiro";
String message = String.format("Olá %s, seu agendamento foi marcado para dia %s de %s.", name, day, month);
assertEquals("Olá José, seu agendamento foi marcado para dia 02 de Janeiro.", message);
}
}
Dessa foram podemos usar o String.format()
como alternativa a concatenação, facilitando a escrita.
Mas, a real função do String.format()
ainda é outra. Sim, podemos utilizar o String.format()
não apenas para montar simples textos, mas, como o próprio nome sugere, formatar textos.
Vamos a um exemplo do uso de formatação de texto com String.format()
.
Formatando valores com ponto flutuante com String.format()
Pegamos o exemplo do valor de PI, então temos: PI = 3,141593
. Vamos imprimir essa linha no Java usando String.format()
, veja:
String pi = String.format("%s = %f", "PI", Math.PI);
Note que para imprimir texto usamos
%s
mas para imprimir um valor com ponto flutuante usamos:%f
.
Agora vamo limitar o número de casas decimais do valo de PI para 3 casas apenas, veja:
String pi = String.format("%s = %.3f", "PI", Math.PI);
Note que apenas alteramos o
%f
para%.3f
com isso ao executar a formatação, o valor de PI será limitado a 3 casas decimais.
Caso queira testar segue a classe completa deste teste:
import static org.junit.jupiter.api.Assertions.assertEquals;
import org.junit.jupiter.api.Test;
public class StringFormatPITest {
@Test
public void test() {
// podemos utilizar %s para textos e %f para valores com ponto flutuante.
String piComplete = String.format("%s = %f", "PI", Math.PI);
assertEquals("PI = 3,141593", piComplete);
// usando %.3f formatamos os valores com ponto flutuante com o máximo de 3 casa decimais.
String piFormat = String.format("%s = %.3f", "PI", Math.PI);
assertEquals("PI = 3,142", piFormat);
}
}
Não esqueca de deixar suas dúvidas nos comentários e compartilhar este post.