🔥 Apps, books, system as a service, podcast and more



Formatando String de Vários Tipos

Olá Internautas,

    Gostaria de mostrar hoje uma nova forma de formar string utilizando o C#.NET e alguns tipos definidos para formatação. Um artigo anterior criado, fui questionado sobre a não utilização de expressões regulares.
       
Requisitos:
Linguagem C#.NET
Framework 1.1, 2.0, 3.5 e 4.0
Ferramenta utilizada: Visual Studio .NET 2008

    O artigo citado anteriormente é este: Formatando String rapidamente [http://aspneti.com/formatando+string+rapidamente+784,0.aspx]. Bem, como o título diz é uma formatação rápida e para quem não entende muito de expressão regular.
   
    Não estou desconsiderando a expressão regular, muito pelo contrário; quero mesmo é ajudar sem a utilização de expressão regular resolver o seu problema mais rápido possível.
   
    Como organizei melhor um outro código para formatar String utilizando algumas funções específicas, resolvi publicar para servir de base a todos que precisam. O código abaixo foi feito para formatar Text, Numeric, CNPJ, CPF, Date, Int, CEP, Telephone e Currency.
   
    Coloquei estes tipos pois são os mais usados por mim em meus sistemas. Este método ainda não aborda expressão regular, aborda mais string.Format e Convert, mas acredito que pode ajudar muito a você leitor.
   
    O primeiro passo foi criar Enum com os tipos chamada TypeString. (Code 1.1)
   
    public enum TypeString
    {
        Text,
        Numeric,
        CNPJ,
        CPF,
        Date,
        Int,
        CEP,
        Telephone,
        Currency
    }
    Referência: Code 1.1

    Ainda no mesmo arquivo, criei outro método específico chamado FormatString recebendo dois tipos de valores. O primeiro o valor (string) e o segundo o type (TypeString) que, resumidamente são os tipos criados no Enum. Dentro do método, utilizei o switch para verificar o tipo e formatar. (Code 1.2)
   
    public static string FormatString(string Value, TypeString tType)
    {
        try
        {
            switch (tType)
            {
                case TypeString.CNPJ:
                    return string.Format("{0}.{1}.{2}/{3}-{4}", Value.Substring(0, 2), Value.Substring(2, 3), Value.Substring(5, 3), Value.Substring(8, 4), Value.Substring(12, 2));
                case TypeString.CPF:
                    return string.Format("{0}.{1}.{2}-{3}", Value.Substring(0, 3), Value.Substring(3, 3), Value.Substring(6, 3), Value.Substring(9, 2));
                case TypeString.Date:
                    if (Convert.ToDateTime(Value) == Convert.ToDateTime("1/1/1900"))
                        return string.Empty;
                    else
                        return Convert.ToDateTime(Value).ToString("dd/MM/yyyy");
                case TypeString.Numeric:
                    return Convert.ToDouble(Value).ToString("#,##0.00");
                case TypeString.Int:
                    return Convert.ToInt64(Value).ToString("#,##0");
                case TypeString.Text:
                    return Value;
                case TypeString.CEP:
                    return string.Format("{0}.{1}-{2}",Value.Substring(0,2),Value.Substring(2,3),Value.Substring(5,3));
                case TypeString.Telephone:
                    Value = Value.Replace("-","").Replace(" ","").Replace(".","");
                    return string.Format("{0}-{1}",Value.Substring(0,Value.Length-4),Value.Substring(Value.Length-4,4));
                case TypeString.Currency:
                    return Convert.ToDouble(Value).ToString("C");
                default:
                    return Value;
            }

        }
        catch
        {
            return Value;
        }
    }
    Referência: Code 1.2
   
    Em resumo geral, utilizei muito string.Format com os padrões necessários para uma formatação legal. Em outro momento utilizei Convert e tudo mais. Veja um exemplo abaixo:
   
    string _cpf = FormatString("00000000000",TypeString.CPF);
    Response.Write(_cpf);
   
    Resultado na tela: 000.000.000-00

   
    Bom, espero que tenham gostado qualquer dúvida pode entrar em contato pelo site.

Sign up to our newsletter

Receive our latest updates about programming languages, software, database, books, ebooks, classes, jobs and more.

Top