W języku C# typ łańcuchowy można przedstawić jako tablicę znaków. Jednakże, znacznie bardziej powszechne jest użycie zmiennej typu string. Słowo kluczowe string jest aliasem do klasy System.String.

Tworzenie obiektu typu String

Obiekt taki może być utworzony za pomocą jednej z następujących metod:
  • przypisując ciąg znaków bezpośrednio do zmiennej String;
  • za pomocą konstruktora klasy String;
  • za pomocą operatora konkatenacji (+);
  • za pomocą właściowości lub wywołania metody zwracającej string;
  • za pomocą wywołania metody do konwertowania obiektu na jego reprezentację łańcuchową.
Przykład:
class TworzenieObiektuTypuString
{
    public TworzenieObiektuTypuString()
    {
        // bezpośrednie przypisanie łańcucha tekstowego
        string brand, model;
        brand = "Audi";
        model = "RS6";
        // konkatenacja
        string fullName = brand + " " + model;
        Console.WriteLine("Pełna nazwa: {0}", fullName);
        // użycie konstruktora klasy String
        char[] litery = { 'W', 'i', 't', 'a', 'j' };
        string powitanie = new string(litery);
        Console.WriteLine("Powitanie: {0}", powitanie);
        // metoda zwracająca string
        string[] tablicaString = { "Witaj", "Drogi", "Użytkowniku" };
        string wiadomosc = string.Join(" ", tablicaString);
        Console.WriteLine("Wiadomość: {0}", wiadomosc);
        // metoda do konwersji na łańcuch tekstowy
        DateTime czas = new DateTime(2015, 11, 17, 17, 00, 00);
        string czasString = String.Format("Wiadomość wysłana o {0:t} w {0:D}", czas);
        Console.WriteLine("Wiadomość: {0}", czasString);
        Console.ReadLine();
        // Wynik działania programu
        //Pelna nazwa: Audi RS6
        //Powitanie: Witaj
        //Wiadomosc: Witaj Drogi Uzytkowniku
        //Wiadomosc: Wiadomosc wyslana o 17:00 w Tuesday, November 17, 2015
    }
}

Właściwości klasy String

Właściwość Opis
Chars pobiera obiekt typu Char z określonej pozycji z bieżącego obiektu typu String
Length pobiera liczbę znaków w bieżącym obiekcie typu String

Metody klasy String

Klasa String posiada wiele wbudowanych metod, które pomogą Ci pracować z typami łańcuchowymi. Poniższa tabela przedstawia listę najczęściej stosowanych metod:
Metoda Opis
public static int Compare(string strA, string strB) porównuje dwa łańcuchy znaków i zwraca liczbę całkowitą, która określa ich względną pozycję w porządku sortowania. Co to oznacza? Porównująć znaki ‘a’ oraz ‘b’ metoda zwróci nam wartość -1. Oznacza to, iż ‘a’ jest mniejsze od ‘b’
public static int Compare(string strA, string strB, bool ignoreCase ) porównuje dwa łańcuchy znaków i zwraca liczbę całkowitą, która określa ich względną pozycję w porządku sortowania. Jeżeli flaga ignoreCase ustawiona będzie na true wielkość liter nie będzie miała znaczenia. Jeżeli porównamy ‘A’ oraz ‘a’ naszym rezultatem będzie 0 – oznacza to, że litery te są dokładnie na tej samej pozycji w porządku sortowania
public static string Concat(string str0, string str1) połączenie dwóch łańuchców znaków w jeden
public static string Concat(string str0, string str1, string str2) połączenie trzech łańcuchów znaków w jeden
public static string Concat(string str0, string str1, string str2, string str3) połączenie czterech łańcuchów znaków w jeden
public bool Contains(string value) zwrócenie wartości logicznej wskazującej na to czy określony łańcych znaków występuje we wskazanym łańcuchu znaków
public static string Copy(string str) utworzenie nowego obiektu typu String o takiej samej wartości co kopiowany łańcuch znaków
public void CopyTo(int sourceIndex, char[] destination, int destinationIndex, int count) skopiowanie określonej liczby znaków ze wskazanej pozycji z obiektu typu String na wskazaną pozycję w tablicy znaków Unicode
public bool EndsWith(string value) sprawdzenie czy dany łańcuch tekstowy kończy się określonym ciągiem znaków
public bool Equals(string value) sprawdzenie czy obecny oraz określony łańuch znaków mają dokładnie tą samą wartość
public static bool Equals(string a, string b) sprawdzenie czy dwa określone łańcuchy znakowe mają dokładnie tą sama wartość
public static string Format(string format, Object arg0) zastąpienie jednego lub więcej elementów w danym łańcuchu znakowym określonym formatem przedstawienia tekstu
public int IndexOf(char value) zwraca liczbę całkowitą będącą indeksem pierwszego wystąpienia określonego znaku w sprawdzanym łańcuchu znakowym
public int IndexOf(string value) zwraca liczbę całkowitą będącą indeksem pierwszego wystąpienia określonego tekstu w sprawdzanym łańcuchu znakowym
public int IndexOf(char value, int startIndex) zwraca liczbę całkowitą będącą indeksem pierwszego wystąpienia określonego znaku w sprawdzanym łańuchu znakowym poczynając od określonej pozycji
public int IndexOf(string value, int startIndex) zwraca liczbę całkowitą będącą indeksem pierwszego wystąpienia określonego tekstu w sprawdzanym łańuchu znakowym poczynając od określonej pozycji
public int IndexOfAny(char[] anyOf) zwraca liczbę całkowitą będącą indeksem pierwszego wystąpienia jakiekolowiek znaku ze zdefiniowanej tablicy
public int IndexOfAny(char[] anyOf, int startIndex) zwraca liczbę całkowitą będącą indeksem pierwszego wystąpienia jakiekolowiek znaku ze zdefiniowanej tablicy poczynając od określonej pozycji
public string Insert(int startIndex, string value) zwraca nowy łańcuch znaków w którym określony łańcuch jest umieszczany w istniejącym poczynając od wskazanej pozycji
public static bool IsNullOrEmpty(string value) sprawdzenie czy dany łańcuch jest zerowy lub pusty
public static string Join(string separator, params string[] value) połączenie wszystkich elementów tablicy z zastosowaniem odpowiedniego operatora pomiędzy elementami
public static string Join(string separator, string[] value, int startIndex, int count) połączenie elementów tablicy z zastosowaniem odpowiedniego operatora pomiędzy elementami oraz wskazaniem pierwszego słowa z tablicy oraz ilości tych słów
public int LastIndexOf(char value) zwraca liczbę całkowitą będącą indeksem ostatniego wystąpienia wskazanego znaku w danym łańcuchu znakowym
public int LastIndexOf(string value) zwraca liczbę całkowitą będącą indeksem ostatniego wystąpienia wskazanego tekstu w danym łańcuchu znakowym
public string Remove(int startIndex) usnięcie wszystkich znaków z bieżącego łańucha znakowego poczynając od określonej pozycji a kończąc na ostatniej oraz zwrócenie nowego łańcucha znakowego
public string Remove(int startIndex, int count) usunięcie określonej liczby znaków z bieżącego łańucha znakowego poczynając od określonej pozycji
public string Replace(char oldChar, char newChar) zamiana wszystkich wystąpień danego znaku na określony znak z tablicy znaków Unicode
public string Replace(string oldValue, string newValue) zamiana wszystkich wystąpień określonego łańcucha znaków określonym łańcuchem znaków
public string[] Split(params char[] separator) zwrócenie tablicy łańcucha znaków, która powstaje w wyniku rozdzielenia bieżącego łańucha znaków określonym znakiem z tablicy znaków Unicde
public string[] Split(char[] separator, int count) zwrócenie tablicy łańcucha znaków, która składa się z określonej liczby wystąpień. Bieżący łańuch znaków jest rozdzielony po wskazanym znaku z tablicy znaków Unicode
public bool StartsWith(string value) sprawdzenie czy określony łańuch znaków zaczyna się od określonego ciągu znaków
public char[] ToCharArray() zwrócenie tablicy znaków składającej się ze wszystkich znaków w danym łańcuchu znaków
public char[] ToCharArray(int startIndex, int length) zwrócenie tablicy znaków składającej się ze wszystkich znaków w danym łańuchu znaków poczynając od określonej pozycji oraz pobierając określoną liczbę znaków
public string ToLower() zwrócenie łańucha znaków zapisanego małego literami
public string ToUpper() zwrócenie łańucha znaków zapisanego dużymi literami
public string Trim() usunięcie wszystkich początkowych oraz końcowych biały znaków
W celu uzyskania kompletnej listy metod klasy String proszę skorzystać z oficjalnej dokumentacji Microsoft.

Zbiór przykładów

Porównanie łańcuchów:
class PorownywanieStringow
{
    public PorownywanieStringow()
    {
        string str1 = "To jest text";
        string str2 = "To jest text";
        if (String.Compare(str1, str2) == 0)
            Console.WriteLine("Ciągi znaków są identyczne");
        else
            Console.WriteLine("Ciągi znaków nie są identyczne");
    }
}
Sprawdzanie wystąpień:
class SprawdzanieWystapien
{
    public SprawdzanieWystapien()
    {
        string str = "To jest text";
        if (str.Contains("text"))
            Console.WriteLine("Sewkencja tekstu 'text' została odnaleziona");
    }
}
Przycinanie łańcuchów:
class PrzycinanieLancuchow
{
    public PrzycinanieLancuchow()
    {
        string str = "To jest przykładowy tekst, który zostanie przycięty";
        Console.WriteLine(str);
        string substring = str.Substring(23); //obciecie poczatkowych znakow
        Console.WriteLine(substring);
        // Wynik działania programu
        //To jest przykladowy tekst, który zostanie przyciety
        //st, który zostanie przyciety
    }
}
Łączenie łańcuchów:
class LaczenieLancuchow
{
    public LaczenieLancuchow()
    {
        string[] rozneSlowa = { "Biega", "krzczy", "Pan", "Hillary", "gdzie", "...." };
        // Kolejne słowa są "laczane" znakiem nowej linii
        string str = String.Join("\n", rozneSlowa);
        Console.WriteLine(str);
        // Wynik działania programu
        //Biega
        //krzczy
        //Pan
        //Hillary
        //gdzie
        //....
    }
}