Da trilha de C# Este conceito ainda não saiu como card do dia. ir para o card de hoje

C# Strings Básico

Strings e interpolação

Em C#, strings são objetos imutáveis do tipo string. Isso significa que qualquer operação que pareça modificar uma string na verdade cria uma nova. Entender isso é essencial para evitar código ineficiente.

A interpolação com $ permite inserir expressões diretamente dentro da string usando { }, deixando o código mais legível que concatenações com +. Também existem métodos úteis como ToUpper(), Substring(), Replace(), Split(), etc.

Quando precisamos montar strings grandes ou em loops, concatenar com + ou interpolação repetida pode ser custoso, pois cada operação aloca uma nova string. Para esses casos, usamos StringBuilder, que é mutável e eficiente.

Além disso, C# 11 introduziu raw string literals ("""), que facilitam escrever strings com muitas aspas, barras invertidas e quebras de linha sem precisar escapar cada caractere.

Pontos-chave

  • Strings são imutáveis: métodos como ToUpper() retornam uma nova string, não alteram a original.
  • Interpolação com $ insere expressões diretamente na string usando {expressao}.
  • StringBuilder é ideal para concatenar muitas strings em sequência, pois evita alocações repetidas.
  • Raw string literals (""") permitem strings multilinha sem escapes e com aspas livres.
  • Use string.Format ou interpolação para formatação simples; reserve StringBuilder para loops ou grandes volumes.
StringsDemo.cs
using System;
using System.Text;

class Program
{
    static void Main()
    {
        // Interpolação com $
        string nome = "Maria";
        int idade = 30;
        Console.WriteLine($"Olá, {nome}! Você tem {idade} anos.");

        // Métodos de string
        string frase = "  C# é divertido!  ";
        Console.WriteLine(frase.Trim().ToUpper()); // "C# É DIVERTIDO!"
        Console.WriteLine(frase.Contains("divertido")); // True

        // StringBuilder para muitas concatenações
        var sb = new StringBuilder();
        for (int i = 1; i <= 5; i++)
        {
            sb.Append(i).Append(" ");
        }
        Console.WriteLine($"Números: {sb.ToString().Trim()}");

        // Raw string literal (C# 11+)
        string json = """
            {
                "nome": "Maria",
                "idade": 30
            }
            """;
        Console.WriteLine(json);
    }
}

Exercícios

  1. 1
    Fácil

    Interpolação simples

    Crie um programa que declare duas variáveis: nome (string) e idade (int). Use interpolação para exibir a mensagem: "Meu nome é [nome] e tenho [idade] anos.".

    Resolver
  2. 2
    Médio

    Métodos de string e StringBuilder

    Leia uma frase do usuário. Exiba a frase sem espaços no início e no fim, em maiúsculas. Depois, use StringBuilder para inverter a frase caractere por caractere e exiba o resultado.

    Resolver
  3. 3
    Desafio

    Relatório com raw string e StringBuilder

    Crie um programa que gere um relatório JSON a partir de uma lista de produtos. Cada produto tem nome e preço. Use StringBuilder para montar o JSON e, no final, exiba-o usando um raw string literal para mostrar o template. O JSON deve ter a estrutura: { "produtos": [ { "nome": "...", "preco": ... }, ... ] }.

    Resolver

Continue estudando