Introdução

A classe String, do namespace System do .NET Framework é muito útil, provavelmente todos os desenvolvedores já utilizaram ao menos um método muito conhecido que retornar um objeto desse tipo, o ToString(). Para ajudar a suprir uma lacuna que há na internet de materiais detalhados sobre os métodos desta classe (neste artigo da DevMedia tem excelentes exemplos) este artigo traz um rápido overview sobre os mais utilizados, com alguns exemplos práticos.

Segundo a documentação do .NET Framework, a classe String contém nada menos que 44 métodos, onde temos 32 métodos públicos, 10 métodos que são membros estáticos e 2 métodos protegidos (do tipo protected), além de ter 37 métodos de extensão (os famosos Extensions Methods).

Mais informações podem ser obtidas na documentação oficial da MSDN, clicando aqui (em inglês).

Crie um projeto do tipo Windows Form e arraste para o form um Label, um TextBox e um Button, para que o mesmo fique parecidos com o form da Figura 1.

Formulário que usaremos nos exemplos

Figura 1: Formulário que usaremos nos exemplos

String.Format

Começando pelos métodos com membros estáticos, vamos falar do Format. Este método é uma mão na roda para os desenvolvedores que desejam formatar seus textos sem muitas preocupações, de uma forma rápida e simples.

Com o método Format criamos um padrão de formatação para a nossa string. Assim, dentro de nossa string podemos colocar alguns “tokens” que serão substituídos por parâmetros, que acrescentaremos ao final.

Conheça o nosso curso de c# e conheça mais sobre a linguagem.

Por exemplo, dê dois cliques no botão do form para que seu evento click seja criado automaticamente. Nele adicione o código aprsentado na Listagem 1.

Listagem 1: String.Format aplicado a um TextBox

private void btnExibir_Click(object sender, EventArgs e) {
	txtTexto.Text = String.Format("Posso incluir o número {0}, {1} e {2} aqui!",
					10, 20, 30);
}

O método Format monta a lógica de substituir os “tokens” pelos respectivos parâmetros, que são passados logo após a primeira vírgula, como no código acima. Vemos o resultado na Figura 2.

Exemplo com String.Format

Figura 2: Exemplo com String.Format

String.IsNullOrEmpty

O outro método com membro estático que iremos falar é o IsNullOrEmpty, muito útil para validar se o valor de um TextBox é nulo ou vazio. Na Listagem 2 vemos um exemplo com este método.

Listagem 2: Método IsNullOrEmpty em ação

if (String.IsNullOrEmpty(txtTexto.Text))
{
	MessageBox.Show("Campo vazio!");
}

Simples assim, como ele é do tipo boolean a verificação se torna bem simples. Caso desejássemos fazer a negativa do código acima, bastaria adicionar uma exclamação (!) antes da chamada ao método.

Vejamos agora para alguns métodos públicos que, em geral, são os mais usados: Contains, Equals, Remove, Replace, Substring, ToLower, ToString e ToUpper.

Contains

Este método é parecido com o operador LIKE, da linguagem SQL. Sua função é verificar se uma determinada string contém o valor informado em seu parâmetro.

Veja na Listagem 3 um exemplo em que se busca a palavra String e, se achar, é exibida uma mensagem para usuário.

Listagem 3: Busca por parte de uma string com o método Contains

if (txtTexto.Text.Contains("String"))
{
	MessageBox.Show("Você digitou String!");
}

O resultado pode ser visto na Figura 3.

Resultado do uso do método Contains

Figura 3: Resultado do uso do método Contains

Equals

Este método é a forma elegante (boas práticas!) de usarmos o operador de comparação (==) em nossas instruções condicionais. Com ele verificamos, por exemplo, se uma string é igual a outra. Na Listagem 4 temos um exemplo de uso, onde verificamos se o texto digitado é exatamente igual a uma determinada string fixa.

Listagem 4: Verificação de igualdade com o método Equals

if (txtTexto.Text.Equals("String"))
{
	MessageBox.Show("Você digitou String!");
}

Se a palavra digitada for "String" o resultado será o mesmo que o da Figura 4.

Remove

O método Remove, como o próprio nome sugere, serve para remover os caracteres de uma determinada string. Em uma de suas sobrecaragas ele pede como parâmetro o índice de início, do tipo int, o qual a partir dele tudo será removido até o final. Veja como remover a palavra "Server", de "SQL Server", na Listagem 5 (em apenas 1 linha!).

Listagem 5: Removendo partes de uma string

MessageBox.Show(txtTexto.Text.Remove(3));

Assim, a partir do índice 3 (lembrando que sempre começa em 0) tudo é removido. O resultado é exibido na Figura 4

Resultado do método Remove

Figura 4: Resultado do método Remove

Replace: outro método muito usado, o Replace é muito útil para substituir um trecho de uma string por outro valor. Veja um exemplo abaixo, na Listagem 6, onde substituimos a palavra "String" pela palavra "Integer", e o resultado é exibido na Figura 5.

Listagem 6: Substituindo um trecho de uma string

if (txtTexto.Text.Equals("String"))
{
	MessageBox.Show(txtTexto.Text.Replace("String", "Integer"));
}
Resultado do método Replace

Figura 5: Resultado do método Replace

Substring

Com este método conseguimos recuperar partes de uma string, apenas informando o índice de início (em uma das sobrecargas), semelhante a como foi feito com o método Remove. Veja como pegar trechos de uma frase qualquer, na Listagem 7 e o resultado na Figura 6.

Listagem 7: Recuperando partes de uma string

MessageBox.Show(txtTexto.Text.Substring(6));
Resultado do método Substring

Figura 6: Resultado do método Substring

ToLower

Com este método conseguimos converter qualquer string para letras minúsculas. Veja como é bem simples seu uso, na Listagem 8 e o resultado na Figura 7.

Listagem 8: Fazendo a string ficar minúscula

MessageBox.Show(txtTexto.Text.ToLower());
Resultado do método ToLower

Figura 7: Resultado do método ToLower

ToUpper

Função oposta ao método ToLower, que faz toda a string ficar maiúscula. Veja o exemplo na Listagem 9 e o resultado na Figura 8.

Listagem 9: Fazendo a string ficar maiúscula

MessageBox.Show(txtTexto.Text.ToUpper());
Resultado do método ToUpper

Figura 8: Resultado do método ToUpper

Fica como sugestão que vocês vejam os outros métodos que não foram abordados aqui, pois são extremamente úteis. Também é recomendado visitar a documentação oficial da classe String na MSDN.