Manipular cadeias de caracteres

Concluído

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.