Formatação com Printf

JavaBeginner
Pratique Agora

Introdução

Neste laboratório, você usará o método printf() em Java. O método printf() é usado para formatar e imprimir uma string no console. A sintaxe geral do método é:

Configurando o diretório do projeto

Abra o terminal e crie um diretório de projeto usando o comando:

mkdir project

Crie um novo arquivo dentro do diretório do projeto usando o comando:

touch project_formatting_printf.java

Formatando Inteiros

Para formatar inteiros usando printf(), usamos o especificador de formato %d. Abaixo está um exemplo:

public static void main(String[] args) {
  int num = 10;
  System.out.printf("The number is: %d%n", num);
}

No código acima, %d é o especificador de formato para inteiros e %n é o caractere de nova linha (newline character).

Compile e execute o código usando os seguintes comandos:

javac project_formatting_printf.java
java project_formatting_printf

Você verá a saída:

The number is: 10

Formatando Decimais

Para formatar decimais, use o especificador de formato %f. Por exemplo:

public static void main(String[] args) {
  double num = 3.14159265359;
  System.out.printf("The number is: %.2f%n", num);
}

No código acima, %.2f é o especificador de formato para decimais com 2 casas decimais.

Compile e execute o código usando os seguintes comandos:

javac project_formatting_printf.java
java project_formatting_printf

Você verá a saída:

The number is: 3.14

Formatando Datas

Para formatar datas, usamos t como o caractere de conversão e fornecemos um especificador de formato. Por exemplo:

public static void main(String[] args) {
  Date date = new Date();
  System.out.printf("Today is %tA, %<tB %<te, %<tY.%n", date);
}

No código acima, %tA é o especificador de formato para o nome completo do dia e %<tB %<te, %<tY é o especificador de formato para o mês, dia e ano. %n é o caractere de nova linha (newline character).

Compile e execute o código usando os seguintes comandos:

javac project_formatting_printf.java
java project_formatting_printf

Você verá a saída:

Today is Friday, October 15, 2021.

Usando Flags

Flags (sinalizadores) são usados para adicionar recursos especiais à saída. Por exemplo:

public static void main(String[] args) {
  double num = 12345.6789;
  System.out.printf("The number is: %,.2f%n", num);
}

No código acima, , é o separador de milhares e %.2f é o especificador de formato para decimais com 2 casas decimais.

Compile e execute o código usando os seguintes comandos:

javac project_formatting_printf.java
java project_formatting_printf

Você verá a saída:

The number is: 12,345.68

Usando Precisão

A precisão é usada para limitar o número de casas decimais. Por exemplo:

public static void main(String[] args) {
  double num = 1234.56789;
  System.out.printf("The number is: %.2f%n", num);
}

No código acima, %.2f é o especificador de formato para decimais com 2 casas decimais.

Compile e execute o código usando os seguintes comandos:

javac project_formatting_printf.java
java project_formatting_printf

Você verá a saída:

The number is: 1234.57

Usando Letras Maiúsculas

Para imprimir a saída em letras maiúsculas, usamos a versão maiúscula do caractere de conversão. Por exemplo:

public static void main(String[] args) {
  String name = "John Doe";
  System.out.printf("Name: %S%n", name);
}

No código acima, %S é o especificador de formato para strings em letras maiúsculas.

Compile e execute o código usando os seguintes comandos:

javac project_formatting_printf.java
java project_formatting_printf

Você verá a saída:

Name: JOHN DOE

Usando Padding (Preenchimento)

Podemos usar preenchimento (padding) para adicionar espaços ou zeros à saída. Por exemplo:

public static void main(String[] args) {
  int num = 123;
  System.out.printf("The number is: %010d%n", num);
}

No código acima, %010d é o especificador de formato para inteiros com 10 dígitos e o caractere de preenchimento é 0.

Compile e execute o código usando os seguintes comandos:

javac project_formatting_printf.java
java project_formatting_printf

Você verá a saída:

The number is: 0000000123

Combinando Especificadores de Formato

Podemos combinar múltiplos especificadores de formato para formatar a saída como desejamos. Por exemplo:

public static void main(String[] args) {
  double num = 1234.56789;
  System.out.printf("The number is: %,010.2f%n", num);
}

No código acima, %010.2f é o especificador de formato para decimais com 2 casas decimais, 10 dígitos e o caractere de preenchimento é 0. , é o separador de milhares.

Compile e execute o código usando os seguintes comandos:

javac project_formatting_printf.java
java project_formatting_printf

Você verá a saída:

The number is: 01,234.57

Resumo

Parabéns! Você concluiu o laboratório de Formatação com Printf. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.