Alinhando tabelas
Formate colunas de dados
Alinhando tabelas é uma aula grátis de Java Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Java Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Java Academy inclui 4 aulas no total.
Por que Alinhar?
Ao imprimir linhas de dados, colunas irregulares são difíceis de ler. Colunas alinhadas organizam números e rótulos diretamente uns sob os outros.
As larguras e os sinalizadores de printf permitem criar tabelas organizadas diretamente no console.
Alinhamento à Direita por Padrão
Uma largura como %10s reserva 10 caracteres e preenche à esquerda, fazendo com que o texto fique alinhado à direita.
Os números se comportam da mesma forma, por isso as colunas de números ficam alinhadas na borda direita.
public class Main {
public static void main(String[] args) {
System.out.printf("[%10s]\n", "hi");
}
}Alinhamento à Esquerda com um Menos
Adicione o sinalizador - para alinhar à esquerda dentro do campo. %-10s coloca o texto à esquerda e preenche à direita.
O alinhamento à esquerda é ideal para rótulos e nomes.
public class Main {
public static void main(String[] args) {
System.out.printf("[%-10s]\n", "hi");
}
}Duas Colunas
Combine um rótulo alinhado à esquerda com um número alinhado à direita para criar uma linha. %-10s%5d fornece um nome com largura 10 e um número com largura 5.
Repita a mesma formatação para cada linha e as colunas ficarão alinhadas.
public class Main {
public static void main(String[] args) {
System.out.printf("%-10s%5d\n", "Apples", 3);
System.out.printf("%-10s%5d\n", "Pears", 12);
}
}Uma Tabela Simples
Usar a mesma cadeia de caracteres de formatação para um cabeçalho e para cada linha de dados mantém tudo alinhado.
Aqui, três linhas compartilham um único padrão, por isso as colunas permanecem organizadas.
public class Main {
public static void main(String[] args) {
String fmt = "%-8s%6d\n";
System.out.printf(fmt, "Name", 0);
System.out.printf(fmt, "Ann", 90);
System.out.printf(fmt, "Bob", 7);
}
}Alinhando Casas Decimais
Para dinheiro ou medidas, combine largura e precisão: %8.2f alinha um número à direita em 8 caracteres, com duas casas decimais.
Os pontos decimais ficam alinhados verticalmente entre as linhas.
public class Main {
public static void main(String[] args) {
System.out.printf("%8.2f\n", 5.5);
System.out.printf("%8.2f\n", 123.4);
}
}Cabeçalho com Números
Misture colunas de texto e número em uma única linha. Um rótulo à esquerda e um preço alinhado à direita ficam naturalmente bem juntos.
Esse padrão é o centro da maioria dos relatórios de console.
public class Main {
public static void main(String[] args) {
System.out.printf("%-10s%8.2f\n", "Coffee", 3.5);
System.out.printf("%-10s%8.2f\n", "Cake", 12.0);
}
}Escolhendo Larguras de Coluna
Escolha uma largura pelo menos tão grande quanto o seu valor mais longo; caso contrário, o texto ultrapassará a coluna e quebrará o alinhamento.
Se um valor for mais largo que o campo, printf o imprimirá por completo e ignorará a largura.
public class Main {
public static void main(String[] args) {
System.out.printf("[%3s]\n", "toolong");
}
}Percorrendo Linhas
Um laço junto com uma única cadeia de formatação compartilhada facilita a geração de uma tabela inteira.
Cada passagem imprime uma linha alinhada, portanto adicionar dados nunca quebra o layout.
public class Main {
public static void main(String[] args) {
String[] names = {"Sun", "Mon", "Tue"};
int[] hrs = {8, 12, 5};
for (int i = 0; i < names.length; i++) {
System.out.printf("%-6s%4d\n", names[i], hrs[i]);
}
}
}Combinando com String.format
Você pode construir cada linha alinhada com String.format se precisar do texto antes de imprimi-lo.
As regras de largura e alinhamento são idênticas.
public class Main {
public static void main(String[] args) {
String row = String.format("%-8s%5d", "Total", 99);
System.out.println(row);
}
}Tabulações versus Larguras
Você poderia separar as colunas com tabulações \t, mas as posições das tabulações variam e valores longos ficam desalinhados.
Larguras fixas como %-10s produzem colunas confiáveis e previsíveis; por isso, prefira-as em tabelas.
Verificação Rápida
Qual formato alinha um nome à esquerda em 12 caracteres?
Recapitulação
Você criou tabelas alinhadas usando campos de largura, o sinalizador - para alinhamento à esquerda e %8.2f para colunas decimais organizadas.
Com printf, String.format e alinhamento, você pode formatar qualquer saída do console de maneira limpa.
Aprenda Java com um tutor de IA — grátis
Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.
- Cursos
- 104
- Aulas
- 374
Perguntas Frequentes
A aula “Alinhando tabelas” é grátis?
Sim — o texto completo de “Alinhando tabelas” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Java Academy, atualize para CoddyKit PRO. O curso de Java Academy inclui 4 aulas no total.
O que vou aprender em “Alinhando tabelas”?
Formate colunas de dados Você pratica Java Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Java Academy?
Nenhuma experiência prévia é necessária. Java Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Alinhando tabelas”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Java Academy?
Sim. Cada aula de Java Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Noções básicas de printf
- Formatos numéricos e decimais
- String.format
- Alinhando tabelas