Manipular cadeias de caracteres
Sugestão
Consulte a guia Texto e imagens para obter mais detalhes!
O texto é um dos tipos de dados mais comuns na programação. Em C#, o texto é representado como uma cadeia de caracteres — uma sequência de caracteres entre aspas duplas. C# oferece muitas formas incorporadas de manipular e formatar strings.
Concatenação (unir cadeias entre si)
Pode juntar duas ou mais cadeias numa única sequência usando o + operador:
string first = "Hello";
string last = "world";
string message = first + ", " + last + "!";
Console.WriteLine(message);
Saída:
Hello, world!
Embora a concatenação funcione muito bem para combinações simples, pode tornar-se confusa quando tentas misturar variáveis, pontuação e espaços.
Uma forma melhor: Interpolação de cadeias de caracteres
Uma forma mais limpa e moderna de combinar cadeias e variáveis é a interpolação de cadeias. Para criar este tipo de cadeia de caracteres, coloque um cifrão ($) diretamente antes da aspa de abertura e coloque os nomes das variáveis dentro de chavetas {}:
string name = "Alex";
Console.WriteLine($"Hello, {name}!");
Saída:
Hello, Alex!
Podes tentar correr este código tu próprio no Editor de Código C#.
Uma forma mais limpa de combinar entrada e saída
A interpolação de cadeias de caracteres resolve o problema que vimos antes com Console.ReadLine(). Agora pode misturar texto e variáveis facilmente:
string name = Console.ReadLine();
Console.WriteLine($"Hello, {name}! Nice to meet you.");
Isto é muito mais limpo do que concatenar com +.
Observação
Se te esqueceres do prefixo $ (por exemplo, Console.WriteLine("Hello, {name}")), o C# não vai olhar para dentro das chavetas — vai literalmente mostrar {name} no ecrã.
Métodos comuns de cadeias de caracteres
As cadeias C# têm muitos métodos incorporados para operações comuns. Para usar um método, escreva o nome da variável, um ponto e o nome do método seguidos de parênteses:
| Método | O que faz | Example | Resultado |
|---|---|---|---|
.ToUpper() |
Converte texto em maiúsculas | "hello".ToUpper() |
"HELLO" |
.ToLower() |
Converte o texto em minúsculas | "HELLO".ToLower() |
"hello" |
.Replace(old, new) |
Substitui caracteres específicos | "cat".Replace("c", "b") |
"bat" |
.Length |
Devolve o número de caracteres | "Alex".Length |
4 |
Exemplo prático
Aqui está como podem usar estas técnicas em conjunto:
Console.Write("What's your name? ");
string name = Console.ReadLine();
string greeting = $"Welcome, {name.ToUpper()}!";
Console.WriteLine(greeting);
Se o utilizador escrever alex, a saída é:
What's your name? alex
Welcome, ALEX!
Repare como .ToUpper(), a introdução do utilizador foi convertida em maiúsculas, e como a interpolação de cadeias de caracteres facilitou combinar tudo.