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
Desafio
FácilCrie um método chamado formatData que recebe quatro argumentos:
- Uma String (
name) para o nome do produto - Um double (
price) para o preço do produto - Um inteiro (
quantity) para a quantidade - 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():
%spara strings%dpara inteiros%.2fpara 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));
}
}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
1Arrays Multidimensionais
Básicos de Arrays 2DAcessando Elementos de Arrays 2DLoops Aninhados com Arrays 2DResumo - Arrays 2DAdição e Subtração de MatrizesArrays EscalonadosArrays 3D e AlémPadrões Comuns de Arrays 2DResumo - Tudo Sobre Arrays2HashMap Parte 1
O que é um HashMap?Declarar um HashMapAcessando ValoresVerificar se a Chave ExisteModificando DicionáriosResumo - HashMap5HashSet Parte 2
Mat. - União de HashSetsMat. - Interseção de HashSetMat. - Diferença de ConjuntosMat. - Diferença SimétricaSubconjuntos e SuperconjuntosIterando Sobre Conjuntos8Operações Avançadas com Strings
Básicos do StringBuilderIntrodução ao StringBufferBásicos de Expressões RegularesEmparelhamento de Padrões com RegexTokenizador de StringsFormatação Avançada de Strings3HashMap Parte 2
Métodos do HashMapIterar com keySet()Iterar com entrySet()HashMap AninhadoResumo - Gerenciar ArmazémResumo - Operações do HashMap6Fluxo de Controle Avançado
Declarações RotuladasExpressão SwitchCorrespondência de PadrõesCláusulas de GuardaResumo - Fluxo de Controle9Projeto - Contador de Palavras Únicas
Entrada e Armazenamento de TextoProcessamento de Palavras