Desenvolvimento - C#

Formatando Strings

Neste artigo veremos a formatação de dados com a Classe String.Format().

por Marcelo Bicalho



O .net FCL possui a classe String que prove métodos de manipulação de string. Para a formatação de strings iremos utilizar o método Format.

Para o método Format deverá ser passado uma string com o(s) formato(s), e o(s) objeto(s) a serem formatados.

Algumas Assinaturas: String.Format("Formato",Ojbeto);
String.Format("Formato1, Formato2, ...", Objeto1, Objeto2, ...);
String.Format("Formato", Array Object); Todas as assinaturas do método retornam uma string formatada.

Vejamos a Construção do formato: * Para cada objeto informado na assinatura do método deverá ser informado um formato.
* Para cada formato temos como marca de inicio e fim respectivamente os caracteres {}
* Para o formato temos a divisão: "{Índice, Alinhamento: Caracteres de formato}".

Construção do Formato:

O formato é composto de {index,alignment:formatString}

Index = Corresponde respectivamente a posição do objeto informado.
Alingment = Corresponde ao alinhamento do valor do objeto em relação ao tamanho. Para valores negativos alinhamento à esquerda. Para valores positivos alinhamento à direita.
FormatString = Corresponde ao caracter de formato.

Exemplo de construção: textBox1.Text = String.Format("{0,-20:dd}", DateTime.Now). Onde o resultado será uma string com 20 caracteres e a data do sistema alinhada a esquerda.

Exemplo:

String.Format("A data de hoje é:{0:d}, e apenas o dia de amanhã é:{1:dd}", DateTime.Now, DateTime.Now.AddDays(1));

Para a string demostrada temos 2 formatos ({0:d} e {1:dd}), que correspondem respectivamente para dois objetos (DateTime.Now e DateTime.Now.AddDays(1))

Considerando a data do sistema o resultado foi:
"A data de hoje é: 08/02/2008, e apenas o dia de amanhã é:09"

Caracteres de formato:
"Standard Numeric Format Specifiers
"(C) Currency: . . . . . . . . ($123.00)
"(D) Decimal:. . . . . . . . . -123
"(E) Scientific: . . . . . . . -1.234500E+002
"(F) Fixed point:. . . . . . . -123.45
"(G) General:. . . . . . . . . -123
"    (default):. . . . . . . . -123 (default = "G")
"(N) Number: . . . . . . . . . -123.00
"(P) Percent:. . . . . . . . . -12,345.00 %
"(R) Round-trip: . . . . . . . -123.45
"(X) Hexadecimal:. . . . . . . FFFFFF85


"Standard DateTime Format Specifiers
"(d) Short date: . . . . . . . 6/26/2004
"(D) Long date:. . . . . . . . Saturday, June 26, 2004
"(t) Short time: . . . . . . . 8:11 PM
"(T) Long time:. . . . . . . . 8:11:04 PM
"(f) Full date/short time: . . Saturday, June 26, 2004 8:11 PM
"(F) Full date/long time:. . . Saturday, June 26, 2004 8:11:04 PM
"(g) General date/short time:. 6/26/2004 8:11 PM
"(G) General date/long time: . 6/26/2004 8:11:04 PM
"    (default):. . . . . . . . 6/26/2004 8:11:04 PM (default = "G")
"(M) Month:. . . . . . . . . . June 26
"(R) RFC1123:. . . . . . . . . Sat, 26 Jun 2004 20:11:04 GMT
"(s) Sortable: . . . . . . . . 2004-06-26T20:11:04
"(u) Universal sortable: . . . 2004-06-26 20:11:04Z (invariant)
"(U) Universal sortable: . . . Sunday, June 27, 2004 3:11:04 AM
"(Y) Year: . . . . . . . . . . June, 2004


"Standard Enumeration Format Specifiers
"(G) General:. . . . . . . . . Green
"    (default):. . . . . . . . Green (default = "G")
"(F) Flags:. . . . . . . . . . Green (flags or integer)
"(D) Decimal number: . . . . . 3
"(X) Hexadecimal:. . . . . . . 00000003
Marcelo Bicalho

Marcelo Bicalho - Possui graduação Tecnologia em Processamento de Dados e Pós-graduação em Engenharia de Software pela Universidade Norte do Paraná. Atualmente é Analista/Programador de sistemas - OnixSat Rastreamento de Veículos e docente da Universidade Norte do Paraná. Tem experiência na área de Computação com ênfase em Engenharia de Software e Docência em Computação. Trabalha desde 2005 com tecnologia .net (VB.NET, C#, SQLServer).