Strings – Como Manipular – C#

Tempo de leitura: 8 min

Escrito por Celso Kitamura
em 24 de abril de 2019

Compartilhe agora mesmo:

Strings – Como Manipular – C#
5/5 - (2 votos)

Já sabemos que podemos utilizar variáveis do tipo String em nossos aplicativos.

 

Um dos usos mais comuns deste tipo de objeto é quando manipulamos um texto para exibir ao usuário baseado em dados informados por ele. Podemos mostrar uma mensagem de saudação com o nome do usuário quando ele se autenticar no aplicativo, por exemplo.

 

Veremos neste artigo algumas operações básicas de como manipular Strings, ou seja, como podemos “brincar” com texto dentro de nossos sistemas, seja para mostrar uma mensagem para o usuário, seja para gravar um log, etc…

 

Criando Uma Nova String

 

Os objetos do tipo String podem ser criados de várias formas.

 

Podemos fazer uma atribuição simples ou usar uma sobrecarga (overload) para criar uma nova string usando um número de parâmetros diferentes.

 

using System;

namespace CriandoString
{
    public static class Program
    {
        static void Main()
        {
            string stringTeste01 = "Um exemplo de string criado por atribuição.";
            string stringTeste02 = new string('N', 50); //neste exemplo criamos uma string com 50 caracteres N

            Console.WriteLine(stringTeste01);
            Console.WriteLine(stringTeste02);
        }
    }
}

 

Ou podemos utilizar um dos vários métodos que criam novas Strings combinando várias outras Strings, Arrays ou Objetos. Alguns exemplos destes métodos são: String.Format, String.Concat, String.Join, String.Insert, String.CopyTo…

 

Veja abaixo um exemplo utilizando o String.Format para exibir uma mensagem com a data do sistema (DateTime.Now):

 

using System;

namespace CriandoString
{
    public static class Program
    {
        static void Main()
        {
            string stringTeste01 = String.Format("Bom dia! Hoje é {0:dd/MM/yyyy}.", DateTime.Now);

            Console.WriteLine(stringTeste01);
        }
    }
}

 

Cortando E Removendo Caracteres

 

Existem algumas situações em que precisaremos “cortar” ou remover alguns caracteres. Podemos fazer este tipo de operação utilizando os métodos abaixo.

 

Trim

 

O método Trim remove os espaços em branco no início e no final do conteúdo da String.

 

using System;

namespace ExemploTrim
{
    public static class Program
    {
        static void Main()
        {
            string stringTeste = "    TEXTO    ";
            Console.WriteLine(stringTeste);

            string stringTesteTrim = stringTeste.Trim();
            Console.WriteLine(stringTesteTrim);
        }
    }
}

 

TrimStart  e TrimEnd

 

Os métodos TrimStart e TrimEnd removem os espaços em branco no início ou no final (respectivamente) do conteúdo da String.

 

using System;

namespace ExemploTrimStartEnd
{
    public static class Program
    {
        static void Main()
        {
            string stringTeste = "    TEXTO    ";
            
            Console.WriteLine(stringTeste);
            Console.WriteLine(stringTeste.TrimStart());
            Console.WriteLine(stringTeste.TrimEnd());
        }
    }
}

 

Remove

 

O método Remove, como o nome já diz, remove um determinado número de caracteres a partir de uma posição especificada.

 

 

Preenchendo Strings

 

Já tive que criar programas que “montavam” arquivos do tipo texto para integração de informações com outros sistemas. Alguns destes sistemas utilizavam arquivo texto posicional, ou seja, todas as linhas do arquivo deveriam ter o mesmo tamanho.

 

Por isso, precisava formatar os campos dentro deste arquivo para que cada campo dele ficasse com o mesmo comprimento.

 

using System;

namespace ExemploRemove
{
    public static class Program
    {
        static void Main()
        {
            string stringTeste = "TEXTO TEXTO TEXTO REMOVER TEXTO TEXTO TEXTO TEXTO";

            Console.WriteLine(stringTeste);
            Console.WriteLine(stringTeste.Remove(17, 8));
        }
    }
}

 

PadLeft

 

O método PadLeft cria um novo String “juntando” caracteres de preenchimento à esquerda até que o comprimento atinja o total especificado.

 

No exemplo do arquivo texto que citei acima, o campo de código (que era inteiro) deveria possuir 17 posições. Para formatar o registro de código 200, precisaria completar o restante com zeros: 00000000000000200.

 

Ao invés de compor a string com algo do tipo “00000000000000000”, utilizei o método PadLeft para preencher a string com zeros a esquerda. Veja um exemplo abaixo.

 

using System;

namespace ExemploPadLeft
{
    public static class Program
    {
        static void Main()
        {
            string stringTeste = "200";

            Console.WriteLine(stringTeste);
            Console.WriteLine(stringTeste.PadLeft(17, '0'));
        }
    }
}

 

PadRight

 

Já o método PadRight cria uma nova String concatenando os caracteres de preenchimento à direita da string original até o comprimento desejado.

 

Voltando ao arquivo texto, um outro campo deveria mostrar a descrição do um evento com 200 posições e espaços a direita. Veja um exemplo abaixo.

 

using System;

namespace ExemploPadRight
{
    public static class Program
    {
        static void Main()
        {
            string stringTeste = "Descrição do evento";

            Console.WriteLine(stringTeste);
            Console.WriteLine(stringTeste.PadRight(20, ' '));
        }
    }
}

 

Comparando Strings

 

Outra situação bem comum é comparar textos, sejam elas vindas do usuário, da base de dados ou de outro sistema.

 

Para nos auxiliar nesta tarefa, existem vários métodos de comparação na biblioteca .NET:

 

Compare Compara duas strings
CompareOrdinal Compara duas strings sem considerar configurações regionais
CompareTo Compara a string atual com outra string
StartsWith Verifica se a String começa com outra string passada como parâmetro
EndsWith Verifica se a String termina com outra string passada como parâmetro
Equals Verifica se duas Strings são iguais
IndexOf Retorna a posição da String onde se encontra outra string passda como parâmetro, começando do início dela
LastIndexOf Retorna a posição da String onde se encontra outra string passda como parâmetro, começando do final dela

 

using System;

namespace ExemploComparandoStrings
{
    public static class Program
    {
        static void Main()
        {
            string string01 = "Primeiro Texto";
            string string02 = "Segundo Texto";

            Console.WriteLine(String.Compare(string01, string02));
            Console.WriteLine(String.CompareOrdinal(string01, string02));
            Console.WriteLine(string01.CompareTo(string02));
            Console.WriteLine(string01.Equals(string02));
            Console.WriteLine(string01.StartsWith("P"));
            Console.WriteLine(string01.EndsWith("O"));
            Console.WriteLine(string01.IndexOf("i"));
            Console.WriteLine(string01.LastIndexOf("i"));
        }
    }
}

 

Alterando Maiúsculas E Minúsculas Numa String

 

Quando você compara duas strings as letras minúsculas e maiúsculas são tratadas como diferentes, a não ser que você determine explicitamente que isso seja ignorado.

 

Por conta disso, temos disponíveis alguns métodos de alteração de maiúsculas/minúsculas.

 

ToUpper

 

O método ToUpper altera todos os caracteres de uma String para maiúsculas.

 

Veja um exemplo abaixo:

 

using System;

namespace ExemploToUpper
{
    public static class Program
    {
        static void Main()
        {
            string string01 = "primeiro texto";

            Console.WriteLine(string01.ToUpper());
        }
    }
}

 

ToLower

 

O método ToLower altera todos os caracteres de uma String para minúsculas.

 

Veja um exemplo abaixo:

 

using System;

namespace ExemploToLower
{
    public static class Program
    {
        static void Main()
        {
            string string01 = "PRIMEIRO TEXTO";

            Console.WriteLine(string01.ToLower());
        }
    }
}

 

ToTitleCase

 

O método ToTitleCase converte o primeiro caractere de cada palavra em maiúscula e o restante em minúsculas.

 

As palavras que estiverem totalmente em maiúsculas são consideradas acrônimos e não serão convertidas.

 

Este método fica no namespace System.Globalization e leva em consideração a cultura, ou seja, precisamos primeiro recuperar o objeto TextInfo que representa as convenções de uma determinada cultura.

 

No exemplo abaixo a cultura utilizada é a que está configurada na máquina onde o código está sendo executado, que é chamada através do CultureInfo.CurrentCulture:

 

using System;
using System.Globalization;

namespace ExemploToTitleCase
{
    public static class Program
    {
        static void Main()
        {
            string[] valores = { "esta operação não tem IOF", "esta operação não tem iMPOSTo", "O Retorno de Jedi"};
            TextInfo teste = CultureInfo.CurrentCulture.TextInfo;

            foreach (var valor in valores)
                Console.WriteLine("{0} --> {1}", valor, teste.ToTitleCase(valor));
        }
    }
}

 

Usando A Classe StringBuilder

 

Quando manipulamos muito uma String (para formatar um texto para um arquivo de carga, por exemplo) podemos ter problemas de performance. Por este motivo temos o objeto StringBuilder, que está no namespace System.Text e foi projetado para este fim.

 

Para vermos um pouco como este objeto funciona, escrevi um artigo somente para isso que você pode conferir aqui: StringBuilder: Como Utilizar.

 

Meu e-book Como Aprender a Programar do Absoluto Zero está GRATUITO por tempo limitado!

Olha o link: 👉🏼 http://celsokitamura.com.br/como-aprender-a-programar

Bora aprender a programar!

Compartilhe agora mesmo:

Você vai gostar também:

Para enviar seu comentário, preencha os campos abaixo:

Deixe um comentário


*


*


Seja o primeiro a comentar!

Damos valor à sua privacidade

Nós e os nossos parceiros armazenamos ou acedemos a informações dos dispositivos, tais como cookies, e processamos dados pessoais, tais como identificadores exclusivos e informações padrão enviadas pelos dispositivos, para as finalidades descritas abaixo. Poderá clicar para consentir o processamento por nossa parte e pela parte dos nossos parceiros para tais finalidades. Em alternativa, poderá clicar para recusar o consentimento, ou aceder a informações mais pormenorizadas e alterar as suas preferências antes de dar consentimento. As suas preferências serão aplicadas apenas a este website.

Cookies estritamente necessários

Estes cookies são necessários para que o website funcione e não podem ser desligados nos nossos sistemas. Normalmente, eles só são configurados em resposta a ações levadas a cabo por si e que correspondem a uma solicitação de serviços, tais como definir as suas preferências de privacidade, iniciar sessão ou preencher formulários. Pode configurar o seu navegador para bloquear ou alertá-lo(a) sobre esses cookies, mas algumas partes do website não funcionarão. Estes cookies não armazenam qualquer informação pessoal identificável.

Cookies de desempenho

Estes cookies permitem-nos contar visitas e fontes de tráfego, para que possamos medir e melhorar o desempenho do nosso website. Eles ajudam-nos a saber quais são as páginas mais e menos populares e a ver como os visitantes se movimentam pelo website. Todas as informações recolhidas por estes cookies são agregadas e, por conseguinte, anónimas. Se não permitir estes cookies, não saberemos quando visitou o nosso site.

Cookies de funcionalidade

Estes cookies permitem que o site forneça uma funcionalidade e personalização melhoradas. Podem ser estabelecidos por nós ou por fornecedores externos cujos serviços adicionámos às nossas páginas. Se não permitir estes cookies algumas destas funcionalidades, ou mesmo todas, podem não atuar corretamente.

Cookies de publicidade

Estes cookies podem ser estabelecidos através do nosso site pelos nossos parceiros de publicidade. Podem ser usados por essas empresas para construir um perfil sobre os seus interesses e mostrar-lhe anúncios relevantes em outros websites. Eles não armazenam diretamente informações pessoais, mas são baseados na identificação exclusiva do seu navegador e dispositivo de internet. Se não permitir estes cookies, terá menos publicidade direcionada.

Visite as nossas páginas de Políticas de privacidade e Termos e condições.

Importante: Este site faz uso de cookies que podem conter informações de rastreamento sobre os visitantes.
Criado por WP RGPD Pro