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 | |
|
| Primeiro caractere | |
|
| Último caractere | |
|
| Para minúsculo | |
|
| Para maiúsculo | |
|
| Ver se tem substring | |
|
| Posição da substring | |
|
| Extrair parte da string | |
|
| Comparar strings | |
|
| Tirar espaços | |
|
| Dividir por separador | |
|
| Juntar array em string | |
|
| Substituir parte | |
|
| String vazia? | |
|
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".
GO TO FULL VERSION