C # - ciągi

W języku C # można używać ciągów jako tablicy znaków, jednak bardziej powszechną praktyką jest użycie stringsłowo kluczowe, aby zadeklarować zmienną łańcuchową. Słowo kluczowe string jest aliasem dlaSystem.String klasa.

Tworzenie obiektu typu String

Możesz utworzyć obiekt typu string używając jednej z następujących metod -

  • Przypisując ciąg znaków do zmiennej String

  • Przy użyciu konstruktora klasy String

  • Za pomocą operatora konkatenacji ciągów (+)

  • Pobierając właściwość lub wywołując metodę, która zwraca ciąg

  • Wywołując metodę formatowania, aby przekonwertować wartość lub obiekt na jego reprezentację w postaci ciągu

Poniższy przykład demonstruje to -

using System;

namespace StringApplication {

   class Program {
   
      static void Main(string[] args) {
         //from string literal and string concatenation
         string fname, lname;
         fname = "Rowan";
         lname = "Atkinson";
			
         char []letters= { 'H', 'e', 'l', 'l','o' };
         string [] sarray={ "Hello", "From", "Tutorials", "Point" };
         
         string fullname = fname + lname;
         Console.WriteLine("Full Name: {0}", fullname);
         
         //by using string constructor { 'H', 'e', 'l', 'l','o' };
         string greetings = new string(letters);
         Console.WriteLine("Greetings: {0}", greetings);
         
         //methods returning string { "Hello", "From", "Tutorials", "Point" };
         string message = String.Join(" ", sarray);
         Console.WriteLine("Message: {0}", message);
         
         //formatting method to convert a value
         DateTime waiting = new DateTime(2012, 10, 10, 17, 58, 1);
         string chat = String.Format("Message sent at {0:t} on {0:D}", waiting);
         Console.WriteLine("Message: {0}", chat);
      }
   }
}

Kiedy powyższy kod jest kompilowany i wykonywany, daje następujący wynik -

Full Name: RowanAtkinson
Greetings: Hello
Message: Hello From Tutorials Point
Message: Message sent at 5:58 PM on Wednesday, October 10, 2012

Właściwości klasy String

Klasa String ma następujące dwie właściwości -

Sr.No. Właściwość i opis
1

Chars

Pobiera obiekt Char w określonej pozycji w bieżącym obiekcie String .

2

Length

Pobiera liczbę znaków w bieżącym obiekcie String.

Metody klasy String

Klasa String ma wiele metod, które pomagają w pracy z obiektami typu string. W poniższej tabeli przedstawiono niektóre z najczęściej używanych metod -

Sr.No. Metody i opis
1

public static int Compare(string strA, string strB)

Porównuje dwa określone obiekty typu string i zwraca liczbę całkowitą, która wskazuje ich względną pozycję w kolejności sortowania.

2

public static int Compare(string strA, string strB, bool ignoreCase )

Porównuje dwa określone obiekty typu string i zwraca liczbę całkowitą, która wskazuje ich względną pozycję w kolejności sortowania. Jednak ignoruje wielkość liter, jeśli parametr logiczny ma wartość true.

3

public static string Concat(string str0, string str1)

Łączy dwa obiekty typu string.

4

public static string Concat(string str0, string str1, string str2)

Łączy trzy obiekty łańcuchowe.

5

public static string Concat(string str0, string str1, string str2, string str3)

Łączy cztery obiekty łańcuchowe.

6

public bool Contains(string value)

Zwraca wartość wskazującą, czy określony obiekt String występuje w tym ciągu.

7

public static string Copy(string str)

Tworzy nowy obiekt String o tej samej wartości co określony ciąg.

8

public void CopyTo(int sourceIndex, char[] destination, int destinationIndex, int count)

Kopiuje określoną liczbę znaków z określonej pozycji obiektu String do określonej pozycji w tablicy znaków Unicode.

9

public bool EndsWith(string value)

Określa, czy koniec obiektu ciągu pasuje do określonego ciągu.

10

public bool Equals(string value)

Określa, czy bieżący obiekt String i określony obiekt String mają tę samą wartość.

11

public static bool Equals(string a, string b)

Określa, czy dwa określone obiekty String mają tę samą wartość.

12

public static string Format(string format, Object arg0)

Zastępuje jeden lub więcej elementów formatu w określonym ciągu ciągiem reprezentującym określony obiekt.

13

public int IndexOf(char value)

Zwraca indeks (liczony od zera) pierwszego wystąpienia określonego znaku Unicode w bieżącym ciągu.

14

public int IndexOf(string value)

Zwraca indeks (liczony od zera) pierwszego wystąpienia określonego ciągu w tym wystąpieniu.

15

public int IndexOf(char value, int startIndex)

Zwraca indeks (liczony od zera) pierwszego wystąpienia określonego znaku Unicode w tym ciągu, rozpoczynając wyszukiwanie od określonej pozycji znaku.

16

public int IndexOf(string value, int startIndex)

Zwraca indeks (liczony od zera) pierwszego wystąpienia określonego ciągu w tym wystąpieniu, rozpoczynając wyszukiwanie od określonej pozycji znaku.

17

public int IndexOfAny(char[] anyOf)

Zwraca indeks (liczony od zera) pierwszego wystąpienia w tym wystąpieniu dowolnego znaku w określonej tablicy znaków Unicode.

18

public int IndexOfAny(char[] anyOf, int startIndex)

Zwraca indeks (liczony od zera) pierwszego wystąpienia w tym wystąpieniu dowolnego znaku w określonej tablicy znaków Unicode, rozpoczynając wyszukiwanie od określonej pozycji znaku.

19

public string Insert(int startIndex, string value)

Zwraca nowy ciąg, w którym określony ciąg jest wstawiany w określonym położeniu indeksu w bieżącym obiekcie ciągu.

20

public static bool IsNullOrEmpty(string value)

Wskazuje, czy określony ciąg ma wartość null, czy pusty ciąg.

21

public static string Join(string separator, params string[] value)

Łączy wszystkie elementy tablicy ciągów przy użyciu określonego separatora między każdym elementem.

22

public static string Join(string separator, string[] value, int startIndex, int count)

Łączy określone elementy tablicy ciągów przy użyciu określonego separatora między każdym elementem.

23

public int LastIndexOf(char value)

Zwraca pozycję indeksu liczonego od zera ostatniego wystąpienia określonego znaku Unicode w bieżącym obiekcie ciągu.

24

public int LastIndexOf(string value)

Zwraca pozycję indeksu liczonego od zera ostatniego wystąpienia określonego ciągu w bieżącym obiekcie ciągu.

25

public string Remove(int startIndex)

Usuwa wszystkie znaki w bieżącym wystąpieniu, zaczynając od określonej pozycji i kontynuując do ostatniej pozycji, i zwraca ciąg.

26

public string Remove(int startIndex, int count)

Usuwa określoną liczbę znaków w bieżącym ciągu, zaczynając od określonej pozycji i zwraca ciąg.

27

public string Replace(char oldChar, char newChar)

Zastępuje wszystkie wystąpienia określonego znaku Unicode w bieżącym obiekcie ciągu określonym znakiem Unicode i zwraca nowy ciąg.

28

public string Replace(string oldValue, string newValue)

Zastępuje wszystkie wystąpienia określonego ciągu w bieżącym obiekcie ciągu określonym ciągiem i zwraca nowy ciąg.

29

public string[] Split(params char[] separator)

Zwraca tablicę ciągów, która zawiera podciągi w bieżącym obiekcie ciągu, rozdzielone elementami określonej tablicy znaków Unicode.

30

public string[] Split(char[] separator, int count)

Zwraca tablicę ciągów, która zawiera podciągi w bieżącym obiekcie ciągu, rozdzielone elementami określonej tablicy znaków Unicode. Parametr int określa maksymalną liczbę zwracanych podciągów.

31

public bool StartsWith(string value)

Określa, czy początek tego wystąpienia ciągu pasuje do określonego ciągu.

32

public char[] ToCharArray()

Zwraca tablicę znaków Unicode ze wszystkimi znakami w bieżącym obiekcie ciągu.

33

public char[] ToCharArray(int startIndex, int length)

Zwraca tablicę znaków Unicode ze wszystkimi znakami w bieżącym obiekcie ciągu, zaczynając od określonego indeksu i do określonej długości.

34

public string ToLower()

Zwraca kopię tego ciągu zamienioną na małe litery.

35

public string ToUpper()

Zwraca kopię tego ciągu zamienioną na wielkie litery.

36

public string Trim()

Usuwa wszystkie początkowe i końcowe znaki odstępu z bieżącego obiektu String.

Pełną listę metod i konstruktorów klas String można znaleźć w bibliotece MSDN.

Przykłady

Poniższy przykład ilustruje niektóre z metod wymienionych powyżej -

Porównywanie ciągów

using System;

namespace StringApplication {

   class StringProg {
   
      static void Main(string[] args) {
         string str1 = "This is test";
         string str2 = "This is text";

         if (String.Compare(str1, str2) == 0) {
            Console.WriteLine(str1 + " and " + str2 +  " are equal.");
         } else {
            Console.WriteLine(str1 + " and " + str2 + " are not equal.");
         }
         Console.ReadKey() ;
      }
   }
}

Kiedy powyższy kod jest kompilowany i wykonywany, daje następujący wynik -

This is test and This is text are not equal.

Ciąg zawiera ciąg

using System;

namespace StringApplication {

   class StringProg {
   
      static void Main(string[] args) {
         string str = "This is test";
         
         if (str.Contains("test")) {
            Console.WriteLine("The sequence 'test' was found.");
         }
         Console.ReadKey() ;
      }
   }
}

Kiedy powyższy kod jest kompilowany i wykonywany, daje następujący wynik -

The sequence 'test' was found.

Pobieranie podciągu

using System;

namespace StringApplication {

   class StringProg {
   
      static void Main(string[] args) {
         string str = "Last night I dreamt of San Pedro";
         Console.WriteLine(str);
         string substr = str.Substring(23);
         Console.WriteLine(substr);
      }
   }
}

Kiedy powyższy kod jest kompilowany i wykonywany, daje następujący wynik -

San Pedro

Łączenie ciągów

using System;

namespace StringApplication {

   class StringProg {
   
      static void Main(string[] args) {
         string[] starray = new string[]{"Down the way nights are dark",
            "And the sun shines daily on the mountain top",
            "I took a trip on a sailing ship",
            "And when I reached Jamaica",
            "I made a stop"};

         string str = String.Join("\n", starray);
         Console.WriteLine(str);
      }
   }
}

Kiedy powyższy kod jest kompilowany i wykonywany, daje następujący wynik -

Down the way nights are dark
And the sun shines daily on the mountain top
I took a trip on a sailing ship
And when I reached Jamaica
I made a stop