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 stringsPoznaj 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
- Typ char
- Pomocnicze metody char
- Iterowanie po napisach
- Budowanie napisów