Dev (Back & Front)ARTIGO

Formatando String rapidamente

Olá, pessoal,
gostaria de deixar registrado que tenho o intuito de ajudar o desenvolvedor, o analista
e outros que precisam desse tipo de solução. A solução proposta será de formatar qualquer
tipo de dado rapidamente.

Requisitos:

  • Ferramenta de
    desenvolvimento Visual Studio .NET
  • Framework .NET
    3.5
  • Linguagem C#.NET

Bom, no caso de ter um CPF
sem formato, CEP, Telefone, Data e outros, basta usar o método abaixo que tudo
será formatado de uma forma simples e fácil. Na prática, passo apenas o formato
que eu quero usando sharp ou cerquilha (#) e a string sem formato algum, no
final o método retorna a string formatada. Por exemplo: (“##/##/###”, “12092010”), e o valor
retornado é “12/09/2010”.

Depois que comecei a utilizar esse tipo
de formato, nunca mais tive que ficar reformatando data, valores, CPF, CEP e
outros. Não quero estender muito o arquivo falando, pois é simples de usar e
quero ser simples no explicar:

 protected string FormataString(string mascara, string valor)<br />    {<br />        string novoValor = string.Empty;<br />        int posicao = 0;<br /><br />        for (int i = 0; mascara.Length > i; i++)<br />        {<br />            if (mascara[i] == '#')<br />            {<br />                if (valor.Length > posicao)<br />                {<br />                    novoValor = novoValor + valor[posicao];<br />                    posicao++;<br />                }<br />                else<br />                    break;<br />            }<br />            else<br />            {<br />                if (valor.Length > posicao)<br />                    novoValor = novoValor + mascara[i];<br />                else<br />                    break;<br />            }<br />        }<br /><br />        return novoValor;<br />    }

No primeiro passo, analisando o método,
coloquei como protected porque é interno do meu sistema. Retorna “string” e
recebe dois parâmetros de entrada. O primeiro parâmetro de entrada é a
“mascara” e o segundo “valor” que deseja formatar. No método, primeiro de tudo
é dado um “for” para percorrer os dados e colocar a máscara de acordo com que
foi passado. Depois da máscara colocada, retorna o dado formatado.

Lembro que é necessário mandar o valor
sem formato nenhum. Para chamar a função basta fazer o seguinte: 

//Formatando CPF<br />Response.write(FormataString("###.###.###-##", "09289209309"));<br /><br />//Formatando Data<br />Response.write(FormataString("##/##/####", "12092010"));<br /><br />//Formata CEP<br />Response.write(FormataString("##.###-###", "70000000"));<br /><br />//Formata valor<br />Response.write(FormataString("##,##", "2309")); 

O resultado é muito bom e me ajuda
muito a formatar os dados para mostrar em tela. Funciona com
os grids e tudo mais sem nenhum problema. 
Espero ter ajudado e, qualquer dúvida, pode entrar em contato!

Com mais de 20 anos trabalhando no mercado de tecnologia. Mestre em Engenharia Elétrica voltada para o mundo mobile, com mais de 20 livros publicados e cerca de 700 artigos publicados com intuito de ajudar àqueles que querem aprender a programar (site, software, desktop, serviços, api e mobile). Site pessoal: https://www.mauriciojunior.net - MVP, MCAD, MCP Microsoft

Ver perfil