Formatação de Strings em Java

JavaBeginner
Pratique Agora

Introdução

Em Java, o método String.format() formata uma string usando uma combinação de uma string de formatação, uma localidade e argumentos. A string de formatação especifica o formato para o qual os argumentos devem ser convertidos, e a localidade especifica quaisquer configurações que devem ser usadas, como o idioma ou a região. Neste laboratório, aprenderemos mais sobre como usar o método String.format() para formatar strings.

Criando um Exemplo Simples de Formatação de String

Nesta etapa, criaremos um exemplo básico de como usar o método String.format() para formatar uma string.

  1. Crie um novo arquivo Java chamado SimpleFormatExample.java no diretório ~/project.
  2. No método main() da classe SimpleFormatExample, crie uma variável string chamada formattedString e defina-a como o resultado da chamada de String.format() com os seguintes argumentos:
    1. A string "Hello, %s!" como a string de formatação.
    2. A string "world" como um argumento.
  3. Imprima o valor de formattedString usando System.out.println().
  4. Salve e feche o arquivo SimpleFormatExample.java.
  5. No terminal, compile o arquivo SimpleFormatExample.java executando o seguinte comando: javac SimpleFormatExample.java.
  6. Em seguida, execute o arquivo de classe usando o comando java SimpleFormatExample.

Aqui está o código:

public class SimpleFormatExample {
    public static void main(String[] args) {
        String formattedString = String.format("Hello, %s!", "world");
        System.out.println(formattedString);
    }
}

Quando você executar o código, deverá ver a seguinte saída:

Hello, world!

Usando Argumentos na String de Formatação

Nesta etapa, aprenderemos como usar argumentos na string de formatação para personalizar a saída.

  1. Abra o arquivo SimpleFormatExample.java em um editor.
  2. Modifique a variável formattedString para usar um argumento para o número de caracteres a serem exibidos. Substitua o "s" na string de formatação por ".%d-s" para especificar o número máximo de caracteres a serem exibidos.
  3. Adicione um argumento inteiro após a string de formatação para representar o número máximo de caracteres a serem exibidos.
  4. Salve e feche o arquivo SimpleFormatExample.java.
  5. No terminal, compile o arquivo SimpleFormatExample.java executando o seguinte comando: javac SimpleFormatExample.java.
  6. Em seguida, execute o arquivo de classe usando o comando java SimpleFormatExample.

Aqui está o código modificado:

public class SimpleFormatExample {
    public static void main(String[] args) {
        String formattedString = String.format("Hello, %d-s!", 5);
        System.out.println(formattedString);
    }
}

Quando você executar o código, deverá ver a seguinte saída:

Hello, 5-s!

Usando Flags para Modificar o Comportamento da Formatação

Nesta etapa, aprenderemos como usar flags (sinalizadores) para modificar o comportamento da string de formatação.

  1. Abra o arquivo SimpleFormatExample.java em um editor.
  2. Modifique a string de formatação para alinhar o texto à esquerda, adicionando um sinal de menos (-) após o sinal de porcentagem (%).
  3. Adicione um argumento à string de formatação para especificar a largura mínima da saída.
  4. Salve e feche o arquivo SimpleFormatExample.java.
  5. No terminal, compile o arquivo SimpleFormatExample.java executando o seguinte comando: javac SimpleFormatExample.java.
  6. Em seguida, execute o arquivo de classe usando o comando java SimpleFormatExample.

Aqui está o código modificado:

public class SimpleFormatExample {
    public static void main(String[] args) {
        String formattedString = String.format("%-10s, world!", "Hello");
        System.out.println(formattedString);
    }
}

Quando você executar o código, deverá ver a seguinte saída:

Hello     , world!

Usando Caracteres de Conversão para Formatar Diferentes Tipos de Dados

Nesta etapa, aprenderemos como usar diferentes caracteres de conversão para formatar diferentes tipos de dados.

  1. Abra o arquivo SimpleFormatExample.java em um editor.
  2. Modifique a string de formatação para incluir um número de ponto flutuante usando o caractere de conversão %f.
  3. Adicione um argumento de número de ponto flutuante após a string de formatação.
  4. Salve e feche o arquivo SimpleFormatExample.java.
  5. No terminal, compile o arquivo SimpleFormatExample.java executando o seguinte comando: javac SimpleFormatExample.java.
  6. Em seguida, execute o arquivo de classe usando o comando java SimpleFormatExample.

Aqui está o código modificado:

public class SimpleFormatExample {
    public static void main(String[] args) {
        String formattedString = String.format("The value of pi is approximately %f", 3.14159265359);
        System.out.println(formattedString);
    }
}

Quando você executar o código, deverá ver a seguinte saída:

The value of pi is approximately 3.141593

Usando Modificadores de Precisão para Controlar o Número de Dígitos

Nesta etapa, aprenderemos como usar modificadores de precisão para controlar o número de dígitos exibidos na saída formatada.

  1. Abra o arquivo SimpleFormatExample.java em um editor.
  2. Modifique a string de formatação para incluir um número de ponto flutuante usando o caractere de conversão %f. Adicione um modificador de precisão (%.2f) para exibir apenas dois dígitos após a vírgula decimal.
  3. Adicione um argumento de número de ponto flutuante após a string de formatação.
  4. Salve e feche o arquivo SimpleFormatExample.java.
  5. No terminal, compile o arquivo SimpleFormatExample.java executando o seguinte comando: javac SimpleFormatExample.java.
  6. Em seguida, execute o arquivo de classe usando o comando java SimpleFormatExample.

Aqui está o código modificado:

public class SimpleFormatExample {
    public static void main(String[] args) {
        String formattedString = String.format("The value of pi is approximately %.2f", 3.14159265359);
        System.out.println(formattedString);
    }
}

Quando você executar o código, deverá ver a seguinte saída:

The value of pi is approximately 3.14

Usando Locales para Personalizar as Configurações de Formatação

Nesta etapa, aprenderemos como usar locales (localidades) para personalizar as configurações de formatação, como o idioma ou a região.

  1. Abra o arquivo SimpleFormatExample.java em um editor.
  2. Modifique a string de formatação para incluir um número e use o caractere de conversão %d.
  3. Adicione um argumento inteiro após a string de formatação.
  4. Adicione um segundo argumento ao método String.format() para especificar o locale a ser usado. Use a constante Locale.FRENCH para especificar o idioma francês.
  5. Salve e feche o arquivo SimpleFormatExample.java.
  6. No terminal, compile o arquivo SimpleFormatExample.java executando o seguinte comando: javac SimpleFormatExample.java.
  7. Em seguida, execute o arquivo de classe usando o comando java SimpleFormatExample.

Aqui está o código modificado:

import java.util.Locale;

public class SimpleFormatExample {
    public static void main(String[] args) {
        String formattedString = String.format(Locale.FRENCH, "Le nombre est %d", 123456789);
        System.out.println(formattedString);
    }
}

Quando você executar o código, deverá ver a seguinte saída:

Le nombre est 123456789

Formatando Valores de Data e Hora

Nesta etapa, aprenderemos como usar o método String.format() para formatar valores de data e hora.

  1. Abra o arquivo SimpleFormatExample.java em um editor.
  2. Adicione uma instrução de importação para a classe java.util.Calendar, que usaremos para criar uma instância de calendário.
  3. Crie uma nova instância de Calendar usando Calendar.getInstance().
  4. Modifique a string de formatação para incluir uma data usando o caractere de conversão %tD.
  5. Adicione um argumento Date após a string de formatação, usando o método calendar.getTime() para obter um valor Date.
  6. Salve e feche o arquivo SimpleFormatExample.java.
  7. No terminal, compile o arquivo SimpleFormatExample.java executando o seguinte comando: javac SimpleFormatExample.java.
  8. Em seguida, execute o arquivo de classe usando o comando java SimpleFormatExample.

Aqui está o código modificado:

import java.util.Calendar;
import java.util.Date;

public class SimpleFormatExample {
    public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();
        String formattedString = String.format("%tD", calendar.getTime());
        System.out.println(formattedString);
    }
}

Quando você executar o código, deverá ver a seguinte saída:

08/22/21

Formatação Usando Maiúsculas e Minúsculas

Nesta etapa, aprenderemos como usar os caracteres de conversão %S e %s para formatar strings em maiúsculas e minúsculas, respectivamente.

  1. Abra o arquivo SimpleFormatExample.java em um editor.
  2. Modifique a string de formatação para incluir uma string usando o caractere de conversão %S para formatar a string em maiúsculas.
  3. Modifique a string de formatação para incluir uma segunda string usando o caractere de conversão %s para formatar a string em minúsculas.
  4. Salve e feche o arquivo SimpleFormatExample.java.
  5. No terminal, compile o arquivo SimpleFormatExample.java executando o seguinte comando: javac SimpleFormatExample.java.
  6. Em seguida, execute o arquivo de classe usando o comando java SimpleFormatExample.

Aqui está o código modificado:

public class SimpleFormatExample {
    public static void main(String[] args) {
        String formattedString = String.format("The word %S is in uppercase and %s is in lowercase", "HELLO", "world");
        System.out.println(formattedString);
    }
}

Quando você executar o código, deverá ver a seguinte saída:

The word HELLO is in uppercase and world is in lowercase

Tratamento de Exceções

Nesta etapa, aprenderemos sobre as exceções que podem ser lançadas ao usar o método String.format(), e como tratá-las.

  1. Abra o arquivo SimpleFormatExample.java em um editor.
  2. Modifique a string de formatação para incluir um caractere usando o caractere de conversão %c.
  3. Adicione um argumento de caractere após a string de formatação.
  4. Salve e feche o arquivo SimpleFormatExample.java.
  5. No terminal, compile o arquivo SimpleFormatExample.java executando o seguinte comando: javac SimpleFormatExample.java.
  6. Em seguida, execute o arquivo de classe usando o comando java SimpleFormatExample.

Aqui está o código modificado:

public class SimpleFormatExample {
    public static void main(String[] args) {
        try {
            String formattedString = String.format("The character is %c", "too long");
            System.out.println(formattedString);
        } catch (Exception e) {
            System.out.println("An exception occurred: " + e.getMessage());
        }
    }
}

Quando você executar o código, deverá ver a seguinte saída:

An exception occurred: UString.format: '%c' != java.base/java.lang.String

Resumo

Neste laboratório, aprendemos como usar o método String.format() para formatar strings em Java. Começamos criando um exemplo simples que usava uma string de formatação e argumentos para gerar uma string. Em seguida, aprendemos como usar diferentes caracteres de conversão para formatar strings, bem como modificadores de precisão e flags para controlar a saída. Também aprendemos como usar localidades (locales) para personalizar as configurações de formatação e como formatar valores de data e hora. Finalmente, discutimos algumas das exceções que podem ser lançadas ao usar o método String.format() e como tratá-las.