Programando em C#: Cadeia de Caracteres – a classe String
Autor: César A. Marques | Publicado: 2009-09-23T07:02:00-07:00

Com a massificação dos computadores em todas as atividades do dia a dia é normal que nossos programas tenham que apresentar resultados de forma compreensível às pessoas. Normalmente isso é feito através de mensagens escritas, ou seja, seqüências de caracteres encadeados. Popularmente chamadas strings.Algumas linguagens de programação têm as strings como tipos primitivos, o que não acontece no C#. Nesse caso, String é uma classe.Você sabe o que é uma classe?Classe é uma estrutura de dados que contêm informações e/ou executam funções.Posteriormente, entraremos nos detalhes da dinâmica dos itens que compõem uma classe.Existem diversas maneiras referenciar a uma string:Descrevendo seu conteúdo entre aspas duplas (String Literal) ou utilizando o identificador do objeto especificado (referência string). Exemplo:String cadeia = new string();						String cadeia2 = "outra string";String cadeia3 = "mais " + cadeia2;String cadeia4 = new string("istringui"); Você também pode usar um vetor do tipo char para definir uma string: Char[] cadeiaChar = new char[10];cadeiaChar = {'f','r','e','e','s','t','y','l','e','s'};String cadeia5 = new string(cadeiaChar, 0, 4); Deste modo a string receberá a partir da posição 0, 4 caracteres do vetor definido acima. O resultado será a string "free". String cadeia6 = new string('X', 6);Deste modo a string receberá o caractere X 6 vezes. O resultado será uma string assim: "XXXXXX"Uma vez criado a string, este (e qualquer outro, na verdade) objeto dispõe de várias propriedades e funcionalidades (também chamadas Métodos) que auxiliam no uso e manipulação do mesmo.O uso dos métodos faz-se através da fórmula: nomedastring.metodo(argumento(s)).Essa formula vem de um padrão de nomenclatura chamado notação em pontos. Nem todo método necessita de argumentos, nesse caso os parênteses aparecem vazios. Para usar as propriedades a sintaxe é string.propriedade. Exemplo:cadeia5.Length;					Essa propriedade informa o tamanho (a quantidade de caracteres) da string cadeia5. No exemplo, cadeia5.Length é igual a 5.Outros métodos bastante usados da classe string:Equals(string) (lê-se Íquous)Compara as strings quanto ao conteúdo e retorna True caso sejam idênticas, ou False caso contrário.CompareTo(string) (lê-se compérr chu)Compara as strings quanto ao conteúdo e retorna 1 caso a string comparada seja "menor", -1 caso essa string seja "maior" e 0 caso as strings sejam idênticas.StartsWith(string)Retorna True caso a string inicia com a string especificada nos parênteses, False caso contrário.EndsWith(string) Retorna True caso a string termina com a string especificada nos parênteses, False caso contrário.IndexOf(char ou string, [int], [int])Retorna o Índice da primeira ocorrência da string indicada no primeiro parâmetro, a partir da posição indicada pelo segundo argumento, o terceiro argumento indica quantas posições pesquisar após o inicio da pesquisa. Caso não haja ocorrência, retorna o valor -1. IndexOfAny(char[] ou string[], [int], [int])Retorna o Índice da primeira ocorrência de qualquer um dos elementos do vetor dado, a partir da posição [da string] indicada pelo segundo argumento, o terceiro argumento indica quantas posições pesquisar após o inicio da pesquisa. Caso não haja ocorrência, retorna o valor -1.LastIndexOf(char ou String,[int] ,[int]) Retorna o Índice da última ocorrência da string indicada no primeiro parâmetro, a partir da posição indicada pelo segundo argumento, o terceiro argumento indica quantas posições pesquisar após o inicio da pesquisa. Caso não haja ocorrência, retorna o valor -1. LastIndexOfAny(char[] ou string[], [int],[int]) Retorna o Índice da última ocorrência de qualquer um dos elementos do vetor dado, a partir da posição [da string] indicada pelo segundo argumento, o terceiro argumento indica quantas posições pesquisar após o inicio da pesquisa. Caso não haja ocorrência, retorna o valor -1.Substring(int, [int]) (lê-se sâb string)Retorna uma nova string resultante da leitura da string a partir do índice indicado no primeiro argumento, como número de caracteres indicado no segundo argumento. Caso não seja especificado, a substing seguirá até o fim da string original.Concat(string, string) Une duas strings distintas gerando uma terceira. Não modifica as strings envolvidas.ToLower () (lê-se chu láuer)Passa os caracteres alfabéticos para a Caixa baixa.ToUpper() (lê-se chu Ãpâr)Passa os caracteres alfabéticos para a Caixa alta.Replace(char, char) (lê-se rripleice)Substitui caracteres entro da string. Trim() Remove espaços brancos no início e no final de uma stringToString() Retorna o conteúdo da string. É bom lembrar que no caso dos métodos LastIndexOf e LastIndexOfAny usando 3 argumentos, o valor que representa início da pesquisa deve ser maior que o número que determinará o fim, tendo em vista que as pesquisas são iniciadas do fim para o começo da string.Há muito mais sobre strings para se discutir, no próximo post continuaremos agora acerca da classe StringBuilder.