0Pricing
C# Academy · Lekcja

Budowanie napisów

Konkatenacja i StringBuilder.

Budowanie napisów to bezpłatna lekcja C# Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej C# Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs C# Academy zawiera 4 lekcji w sumie.

Łączenie ciągów znaków za pomocą +

Najprostszym sposobem tworzenia ciągu znaków jest łączenie jego części za pomocą operatora +.

Nazywa się to konkatenacją. Rozwiązanie to sprawdza się dobrze w przypadku kilku części, na przykład podczas łączenia powitania z imieniem.

class Program
{
    static void Main()
    {
        string name = "Sam";
        string greeting = "Hi, " + name;
        System.Console.WriteLine(greeting);
    }
}

Interpolacja ciągów znaków

Interpolacja to czytelniejszy sposób wstawiania wartości do tekstu.

Należy umieścić $ przed ciągiem znaków, a zmienne ująć w nawiasy klamrowe. Wartości zostaną automatycznie wstawione w odpowiednie miejsca.

class Program
{
    static void Main()
    {
        string name = "Sam";
        int age = 9;
        System.Console.WriteLine($"{name} is {age}");
    }
}

Koszt używania += w pętlach

Używanie += do powiększania ciągu znaków wewnątrz pętli jest wolne.

Ponieważ ciągi znaków są niezmienne, każde użycie += tworzy zupełnie nowy ciąg znaków i kopiuje wszystkie dotychczasowe znaki. Przy wielu iteracjach powoduje to niepotrzebne zużycie czasu i pamięci.

string result = "";
for (int i = 0; i < 1000; i++)
    result += i; // creates many strings

Poznaj StringBuilder

StringBuilder służy do wydajnego składania tekstu.

Znajduje się w przestrzeni nazw System.Text. Zamiast za każdym razem tworzyć nowy ciąg znaków, powiększa wewnętrzny bufor, co przy wielu dodawanych elementach jest znacznie szybsze.

using System.Text;

StringBuilder sb = new StringBuilder();

Dodawanie za pomocą StringBuilder

Do dodawania tekstu do obiektu StringBuilder należy wywołać metodę Append.

Można dodawać wiele części jedna po drugiej. Obiekt builder przechowuje wszystkie elementy w swoim buforze do chwili pobrania końcowego ciągu znaków.

using System.Text;
class Program
{
    static void Main()
    {
        StringBuilder sb = new StringBuilder();
        sb.Append("Hello");
        sb.Append(", world");
        System.Console.WriteLine(sb.ToString());
    }
}

Uzyskiwanie końcowego ciągu znaków

Obiekt StringBuilder nie jest sam w sobie elementem typu string.

Po zakończeniu dodawania należy wywołać metodę ToString, aby uzyskać gotowy tekst. Następnie można go wyświetlić lub przechować jak dowolny zwykły ciąg znaków.

using System.Text;
StringBuilder sb = new StringBuilder();
sb.Append("Done");
string final = sb.ToString();

Dodawanie w pętli

Właśnie w tym miejscu StringBuilder pokazuje swoje zalety.

Dodawanie wewnątrz pętli pozwala efektywnie powiększać obiekt builder i unikać kopii, które tworzyłoby +=. Ten program tworzy ciąg znaków zawierający liczby.

using System.Text;
class Program
{
    static void Main()
    {
        StringBuilder sb = new StringBuilder();
        for (int i = 1; i <= 5; i++)
            sb.Append(i);
        System.Console.WriteLine(sb.ToString());
    }
}

AppendLine

AppendLine działa podobnie jak Append, ale dodatkowo dodaje po tekście znak nowej linii.

Jest przydatna podczas tworzenia wielowierszowego wyniku, na przykład listy, w której każdy element znajduje się w osobnym wierszu.

using System.Text;
class Program
{
    static void Main()
    {
        StringBuilder sb = new StringBuilder();
        sb.AppendLine("Line 1");
        sb.AppendLine("Line 2");
        System.Console.Write(sb.ToString());
    }
}

Budowanie ze znaków

Można dodawać również pojedyncze wartości char, a nie tylko całe ciągi znaków.

Jest to przydatne podczas przekształcania tekstu znak po znaku, na przykład przy zamianie każdej litery na wielką podczas tworzenia nowego wyniku.

using System.Text;
class Program
{
    static void Main()
    {
        StringBuilder sb = new StringBuilder();
        foreach (char c in "loud")
            sb.Append(char.ToUpper(c));
        System.Console.WriteLine(sb.ToString());
    }
}

Kiedy używać poszczególnych metod

W przypadku kilku części operator + lub interpolacja są czytelne i w zupełności wystarczające.

Podczas tworzenia tekstu w pętli lub łączenia wielu części należy preferować StringBuilder. Ogólna zasada jest następująca: kilka połączeń można wykonywać za pomocą operatorów, a przy wielu połączeniach należy użyć obiektu builder.

string.Join

Gdy dostępna jest już kolekcja części, string.Join łączy je za pomocą separatora.

Najpierw przekazuje się separator, a następnie elementy. Jest to zwięzła alternatywa dla używania pętli w przypadku prostych list.

string[] parts = { "a", "b", "c" };
string joined = string.Join("-", parts);
// joined is "a-b-c"

Szybki test

Sprawdzenie zrozumienia tworzenia ciągów znaków.

Podsumowanie

Do łączenia kilku ciągów znaków należy używać operatora + lub interpolacji, a do łączenia listy części — string.Join.

Podczas tworzenia tekstu w pętlach warto użyć StringBuilder: wywołać Append lub AppendLine, a następnie ToString, aby uzyskać wynik. Pozwala to uniknąć kosztownych kopii tworzonych przez +=, ponieważ ciągi znaków są niezmienne.

Często zadawane pytania

Czy lekcja „Budowanie napisów” jest bezpłatna?

Tak — pełny tekst „Budowanie napisów” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu C# Academy, przejdź na CoddyKit PRO. Kurs C# Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Budowanie napisów”?

Konkatenacja i StringBuilder. Ćwiczysz C# Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć C# Academy?

Nie wymagamy żadnego doświadczenia. C# Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „Budowanie napisów”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji C# Academy?

Tak. Każda lekcja C# Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Typ char
  2. Pomocnicze metody char
  3. Iterowanie po napisach
  4. Budowanie napisów
← Powrót do C# Academy