Menu
Coddy logo textTech

Formatação Avançada de Strings

Parte da seção Lógica e Fluxo do Journey de Java da Coddy — lição 49 de 59.

Formatação de strings no Java permite criar strings formatadas usando especificadores de formato. Os mais comuns são %s para strings, %d para inteiros e %.2f para decimais.

Formate uma string com múltiplos valores:

String name = "John";
int age = 25;
String text = String.format("Name: %s, Age: %d", name, age);

Após executar o código acima, text contém:

Name: John, Age: 25

Formate números decimais com precisão:

double price = 19.99;
String formatted = String.format("Price: $%.2f", price);

Após executar o código acima, formatted contém:

Price: $19.99

challenge icon

Desafio

Fácil

Crie um método chamado formatData que recebe quatro argumentos:

  1. Uma String (name) para o nome do produto
  2. Um double (price) para o preço do produto
  3. Um inteiro (quantity) para a quantidade
  4. Uma String (format) para o tipo de formato de saída

O método deve formatar os dados com base nestes tipos:

  • "basic": return "ITEM: {name}, PRICE: ${price}"
  • "detailed": return "PRODUCT: {name}\nPRICE: ${price}\nQUANTITY: {quantity}"
  • "total": return "TOTAL FOR {quantity}x {name}: ${total}" (total = price * quantity) Todos os preços devem ser formatados com exatamente 2 casas decimais.

Mensagem de retorno:

  • Se qualquer entrada for null ou formato inválido: return "Invalid input"

Folha de consulta

A formatação de strings em Java usa especificadores de formato com String.format():

  • %s para strings
  • %d para inteiros
  • %.2f para decimais com 2 casas decimais

Formate strings com múltiplos valores:

String name = "John";
int age = 25;
String text = String.format("Name: %s, Age: %d", name, age);
// Result: "Name: John, Age: 25"

Formate números decimais com precisão:

double price = 19.99;
String formatted = String.format("Price: $%.2f", price);
// Result: "Price: $19.99"

Experimente você mesmo

import java.util.Scanner;

public class Main {
    public static String formatData(String name, double price, int quantity, String format) {
        // Escreva seu código aqui
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String name = scanner.nextLine();
        double price = Double.parseDouble(scanner.nextLine());
        int quantity = Integer.parseInt(scanner.nextLine());
        String format = scanner.nextLine();
        
        if (name.equals("null")) name = null;
        if (format.equals("null")) format = null;
        
        System.out.println(formatData(name, price, quantity, format));
    }
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica e Fluxo