CodeGym /Cursos /C# SELF /Métodos principais da classe string

Métodos principais da classe string

C# SELF
Nível 9 , Lição 3
Disponível

1. Introdução

No dia a dia, aparecem direto esses tipos de tarefas com strings:

  • Pegar o tamanho da string (e ver se ela não tá vazia).
  • Mudar o case das letras (deixar TUDO MAIÚSCULO ou tudo minúsculo).
  • Ver se a string tem uma palavra ou caractere específico.
  • Trocar uma "palavra feia" por uma mais de boa.
  • Dividir a string em partes por um separador ("lista de telefones separada por vírgula").
  • Tirar espaços no começo e no fim da string.
  • Pegar uma parte da string (tipo, as 3 primeiras letras do sobrenome).
  • Comparar duas strings — ver se são iguais, ignorando o case.

E pra cada uma dessas tarefas, a classe string tem um método próprio.

Tabela dos métodos chave

Operação Método/Propriedade Exemplo
Tamanho da string
Length
name.Length
Primeiro caractere
[0]
name[0]
Último caractere
[name.Length - 1]
name[name.Length - 1]
Para minúsculo
ToLower()
name.ToLower()
Para maiúsculo
ToUpper()
name.ToUpper()
Ver se tem substring
Contains()
name.Contains("Ivan")
Posição da substring
IndexOf()
name.IndexOf("a")
Extrair parte da string
Substring()
name.Substring(1, 3)
Comparar strings
Equals(), ==
name.Equals("Pedro")
Tirar espaços
Trim()
name.Trim()
Dividir por separador
Split()
csv.Split(',')
Juntar array em string
string.Join()
string.Join("-", array)
Substituir parte
Replace()
text.Replace("velho", "novo")
String vazia?
IsNullOrEmpty()
string.IsNullOrEmpty(name)

Hoje a gente vai ver alguns deles.

2. Trabalhando com string como array

Tamanho da string: propriedade Length

O mais simples é saber quantos caracteres tem na string. Pra isso, a gente usa a propriedade Length. Exemplo:

string name = "Arkadiy";
Console.WriteLine(name.Length);  // Vai mostrar: 7
  • Length é uma propriedade (não método), então não precisa de parênteses.
  • Se a string for vazia (""), o tamanho vai ser 0.

Às vezes é útil checar o tamanho da string antes de fazer algo "perigoso" com ela (tipo pegar uma substring).

Pegar caractere pelo índice: indexador [i]

Igual array: string é um array de caracteres. Exemplo:

string hello = "Privet";
char firstChar = hello[0]; 	// 'P'
char lastChar = hello[^1]; 	// 't'
Console.WriteLine(firstChar);
  • O índice começa do zero!
  • Cuidado: se tentar acessar um índice que não existe (hello[100]), vai dar exceção.

3. Comparando strings

Operadores == e !=

No C#, esses operadores só comparam duas strings pelo conteúdo delas.

string word1 = "Hello";
string word2 = "Hello";
bool areEqual = word1 == word2; // true

Método Equals

Diferente do operador ==, o método Equals aceita parâmetros. Por exemplo, comparar strings ignorando o case — quando "Mama" == "mama" e igual a "MAMA". Exemplo:

string pass1 = "Qwerty";
string pass2 = "qwerty";

// comparação padrão, levando em conta o case
bool isSame = pass1.Equals(pass2); // false

// comparação ignorando o case
bool ignoreCase = pass1.Equals(pass2, StringComparison.OrdinalIgnoreCase); // true

4. Mudando o case

Pra transformar a string pra maiúsculo (ou minúsculo), a classe string tem 2 métodos especiais: ToLower() e ToUpper().

Quer que o usuário veja tua mensagem no estilo "IMPORTANTE!"? Ou precisa deixar todos os nomes em minúsculo pra comparar? É fácil:

string text = "Nao Tenho Medo do Lobo Mau!";
Console.WriteLine(text.ToUpper()); // NAO TENHO MEDO DO LOBO MAU!
Console.WriteLine(text.ToLower()); // nao tenho medo do lobo mau!
  • Repara: a string original não muda!
  • Dá pra usar pra comparar strings ignorando o case.

5. Tirando espaços extras

E se o usuário, sem querer (ou de propósito, vai saber), colocou espaços antes e depois do nome? Trim resolve! Tem três versões:

  • Trim — tira todos os espaços no começo e no fim da string;
  • TrimStart — tira espaços só no começo;
  • TrimEnd — tira espaços só no fim.
string raw = "   Gosha   ";
string cleaned = raw.Trim(); 		// "Gosha"
Console.WriteLine($"[{cleaned}]");

6. Pegando substring: Substring

Às vezes tu precisa tirar só uma parte da string.

string word = "Privet";
string part = word.Substring(2);      // "ivet"
string part2 = word.Substring(2, 3);  // "ive"
  • Substring(startIndex) — do caractere startIndex até o fim.
  • Substring(startIndex, length) — começando do startIndex, pega a quantidade de caracteres que tu botou em length.

Atenção: se passar do tamanho da string ou length < 0, vai dar exceção!

7. Checando se a string tá vazia

Antes de usar a string (tipo, numa interpolação), é bom checar se ela não é null e nem tá vazia, senão pode dar erro ou resultado estranho.

a) Checando null com o operador ==

string s = null;
if (s == null)
    Console.WriteLine("String é null");

Problema: não pega string vazia ("").

b) Checando com string.IsNullOrEmpty()

Checa tanto null quanto string vazia:

string s = "";
if (string.IsNullOrEmpty(s))
    Console.WriteLine("String tá vazia ou é null");

c) Checando com string.IsNullOrWhiteSpace()

Ainda leva em conta strings que só têm espaços, tabs e outros caracteres “invisíveis”:

string s = "     ";
if (string.IsNullOrWhiteSpace(s))
    Console.WriteLine("String tá vazia, null ou só tem espaços");

8. Erros comuns com métodos de string

  • O mais comum é esquecer que strings são imutáveis (immutable), como já vimos acima.
  • Outro erro clássico é esquecer da sensibilidade ao case na busca e comparação.

Por exemplo, se o usuário digitar o nome "andrey", mas na lista já tem "Andrey", usar só Contains ou == pode não funcionar, se tu não deixar as duas strings com o mesmo case ou não usar a sobrecarga certa do método.

Também fica ligado nos métodos que retornam índices. Os índices começam do zero, e se voltar -1, quer dizer que não achou nada, não que é "índice 0".

Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION