Domando Strings e Números no C#: Guia Prático de Formatação
Estou participando do Bootcamp WEX - End to End Engineering, e C# é uma linguagem com a qual eu nunca tive tanto contato. Conforme fui avançando, percebi o quanto ela tem a oferecer e como poderei utilizá-la em projetos futuros. Gosto de compartilhar o que aprendo ao longo do caminho, e hoje quero dividir com vocês uma pequena parte desse progresso: formatação de strings e números em C#.
Se você já tentou exibir um número como moeda e ele apareceu como 1234.5 ao invés de R$ 1.234,50? Ou precisou montar uma string com variáveis no meio e acabou usando um monte de + que mais parece código de matemática? Pois é… formatar strings e números em C# pode parecer simples à primeira vista, mas existe um mundo de possibilidades (e armadilhas) aí.
Se você quer deixar suas saídas elegantes, seu código limpo e seus dados fáceis de ler — vem comigo! Neste artigo, vamos explorar como deixar a formatação no C# sob seu controle, com dicas e exemplos práticos que você pode aplicar agora mesmo.
Formatando Strings: Três Jeitos Clássicos
1. Interpolação de Strings ($" ")
A forma mais moderna e legível. Você coloca variáveis diretamente dentro da string com chaves {}:
string nome = "Ana";
int idade = 30;
Console.WriteLine($"Olá, {nome}! Você tem {idade} anos.");
2. String.Format()
Um método mais antigo, mas ainda útil. Especialmente bom pra locais onde $"" não é permitido:
string texto = String.Format("Olá, {0}! Você tem {1} anos.", nome, idade);
3. Concatenação (Evite!)
Funciona, mas pode deixar seu código bagunçado rapidamente:
string texto = "Olá, " + nome + "! Você tem " + idade + " anos.";
Formatando Números
1. Formatos Numéricos Padrão
Exemplo:
double valor = 1234.56;
Console.WriteLine(valor.ToString("C")); // Moeda
Console.WriteLine(valor.ToString("N2")); // Número com 2 casas decimais
Console.WriteLine(valor.ToString("P")); // Porcentagem
2. Formatando com Interpolação + Especificadores
Interpolação também aceita formatação com : dentro das chaves.
double preco = 99.9;
Console.WriteLine($"O produto custa {preco:C2}"); // R$ 99,90
Outro exemplo com alinhamento:
string nome = "Produto";
double valor = 1234.56;
Console.WriteLine($"{nome,-10}: {valor,10:C}");
// Produto : R$ 1.234,56
Dica: Use números negativos para alinhar à esquerda, positivos à direita.
3. Formatando Datas e Horas
DateTime hoje = DateTime.Now;
Console.WriteLine($"Data curta: {hoje:d}");
Console.WriteLine($"Data longa: {hoje:D}");
Console.WriteLine($"Hora: {hoje:t}");
Console.WriteLine($"Completa: {hoje:F}");
Se necessário, você pode criar o seu próprio padrão:
Console.WriteLine(hoje.ToString("dd/MM/yyyy HH:mm:ss"));
4 . Customizando Formatos com ToString
Objetos também podem ter seu próprio .ToString() sobrescrito. Exemplo com uma classe:
class Pessoa {
public string Nome { get; set; }
public int Idade { get; set; }
public override string ToString() {
return $"{Nome}, {Idade} anos";
}
}
Dicas Finais
Cuidado com a cultura: A formatação numérica e de data depende da cultura (CultureInfo). Use isso se for formatar para outro país.
double preco = 1234.56;
Console.WriteLine(preco.ToString("C", new CultureInfo("en-US"))); // $1,234.56
- Evite hardcode de formatação: Se for usar muito, encapsule num método para reaproveitar.
- StringBuilder para muitas concatenações: se você tiver que montar strings enormes em loops, use StringBuilder para eficiência.
Conclusão
Formatar strings e números em C# é uma habilidade básica, mas poderosa. Vai muito além de apenas "mostrar na tela" — trata-se de apresentar informações de forma clara, precisa e profissional. Se você dominar bem isso, seu código não só vai funcionar melhor, como vai parecer mais polido.
Então da próxima vez que for exibir aquele relatório, logar uma mensagem ou mostrar valores ao usuário, lembre-se: formatar bem é comunicar bem.