Manipulowanie ciągami
Wskazówka
Aby uzyskać więcej szczegółów, zobacz kartę Tekst i obrazy .
Tekst jest jednym z najbardziej typowych typów danych w programowaniu. W języku C#tekst jest reprezentowany jako ciąg — sekwencja znaków ujęta w cudzysłowy. Język C# udostępnia wiele wbudowanych sposobów manipulowania ciągami i ich formatowania.
Łączenie (łączenie ciągów razem)
Za pomocą + operatora można połączyć dwa lub więcej ciągów w jeden ciąg:
string first = "Hello";
string last = "world";
string message = first + ", " + last + "!";
Console.WriteLine(message);
Wyjście:
Hello, world!
Chociaż konkatenacja świetnie sprawdza się przy prostych połączeniach, może stać się nieczytelna, gdy próbujesz łączyć zmienne, znaki interpunkcyjne i spacje.
Lepszy sposób: interpolacja ciągów
Czystszym, nowoczesnym sposobem łączenia ciągów i zmiennych jest interpolacja ciągów. Aby utworzyć ciąg znaków tego typu, umieść znak dolara ($) bezpośrednio przed cudzysłowem otwierającym, a nazwy zmiennych umieść wewnątrz nawiasów klamrowych {}:
string name = "Alex";
Console.WriteLine($"Hello, {name}!");
Wyjście:
Hello, Alex!
Możesz spróbować uruchomić ten kod samodzielnie w edytorze kodu języka C#.
Czystszy sposób łączenia danych wejściowych i wyjściowych
Interpolacja łańcuchów rozwiązuje problem, który omówiliśmy wcześniej przy użyciu Console.ReadLine(). Teraz możesz łatwo mieszać tekst i zmienne:
string name = Console.ReadLine();
Console.WriteLine($"Hello, {name}! Nice to meet you.");
Jest to znacznie bardziej przejrzyste niż łączenie za pomocą +.
Note
Jeśli zapomnisz o prefiksie $ (np. Console.WriteLine("Hello, {name}")), C# nie zajrzy do wnętrza nawiasów klamrowych — dosłownie wyświetli na ekranie {name}.
Najczęściej używane metody łańcucha
Ciągi języka C# mają wiele wbudowanych metod dla typowych operacji. Aby użyć metody, wpisz nazwę zmiennej, kropkę i nazwę metody, po której następują nawiasy:
| Metoda | Do czego służy | Example | Wynik |
|---|---|---|---|
.ToUpper() |
Zmienia tekst na wielkie litery | "hello".ToUpper() |
"HELLO" |
.ToLower() |
Konwertuje litery w tekście na małe. | "HELLO".ToLower() |
"hello" |
.Replace(old, new) |
Zamienia określone znaki | "cat".Replace("c", "b") |
"bat" |
.Length |
Zwraca liczbę znaków | "Alex".Length |
4 |
Przykład praktyczny
Oto jak można używać tych technik razem:
Console.Write("What's your name? ");
string name = Console.ReadLine();
string greeting = $"Welcome, {name.ToUpper()}!";
Console.WriteLine(greeting);
Jeśli użytkownik wpisze alex, wynik jest następujący:
What's your name? alex
Welcome, ALEX!
Zwróć uwagę, jak .ToUpper() zamienił dane wejściowe użytkownika na wielkie litery, a interpolacja ciągów znaków ułatwiła połączenie wszystkiego w całość.