Учебники

C # — Струны

В C # вы можете использовать строки в качестве массива символов. Однако более распространенной практикой является использование ключевого слова string для объявления строковой переменной. Ключевое слово string является псевдонимом для класса System.String .

Создание строкового объекта

Вы можете создать строковый объект, используя один из следующих методов —

  • Присваивая строковый литерал строковой переменной

  • Используя конструктор класса String

  • Используя оператор конкатенации строк (+)

  • Получая свойство или вызывая метод, который возвращает строку

  • Вызывая метод форматирования для преобразования значения или объекта в его строковое представление

Присваивая строковый литерал строковой переменной

Используя конструктор класса String

Используя оператор конкатенации строк (+)

Получая свойство или вызывая метод, который возвращает строку

Вызывая метод форматирования для преобразования значения или объекта в его строковое представление

Следующий пример демонстрирует это —

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);
      }
   }
}

Когда приведенный выше код компилируется и выполняется, он дает следующий результат —

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

Свойства класса String

Класс String имеет следующие два свойства —

Sr.No. Описание недвижимости
1

Символов

Получает объект Char в указанной позиции в текущем объекте String .

2

длина

Получает количество символов в текущем объекте String.

Символов

Получает объект Char в указанной позиции в текущем объекте String .

длина

Получает количество символов в текущем объекте String.

Методы класса String

Класс String имеет множество методов, которые помогут вам в работе со строковыми объектами. В следующей таблице приведены некоторые из наиболее часто используемых методов —

Sr.No. Методы и описание
1

public static int Compare (строка strA, строка strB)

Сравнивает два указанных строковых объекта и возвращает целое число, которое указывает их относительное положение в порядке сортировки.

2

public static int Compare (строка strA, строка strB, bool ignoreCase)

Сравнивает два указанных строковых объекта и возвращает целое число, которое указывает их относительное положение в порядке сортировки. Однако он игнорирует случай, если логический параметр имеет значение true.

3

открытая статическая строка Concat (строка str0, строка str1)

Объединяет два строковых объекта.

4

открытая статическая строка Concat (строка str0, строка str1, строка str2)

Объединяет три строковых объекта.

5

открытая статическая строка Concat (строка str0, строка str1, строка str2, строка str3)

Объединяет четыре строковых объекта.

6

public bool Contains (строковое значение)

Возвращает значение, указывающее, встречается ли указанный объект String в этой строке.

7

публичная статическая строка Copy (строка str)

Создает новый объект String с тем же значением, что и указанная строка.

8

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

Копирует указанное количество символов из указанной позиции объекта String в указанную позицию в массиве символов Unicode.

9

public bool EndsWith (строковое значение)

Определяет, соответствует ли конец строкового объекта указанной строке.

10

public bool Equals (строковое значение)

Определяет, имеют ли текущий объект String и указанный объект String одинаковые значения.

11

public static bool Equals (строка a, строка b)

Определяет, имеют ли два указанных объекта String одинаковое значение.

12

открытый статический формат строки (формат строки, объект arg0)

Заменяет один или несколько элементов формата в указанной строке строковым представлением указанного объекта.

13

public int IndexOf (значение char)

Возвращает нулевой индекс первого вхождения указанного символа Unicode в текущей строке.

14

public int IndexOf (строковое значение)

Возвращает нулевой индекс первого вхождения указанной строки в этом экземпляре.

15

public int IndexOf (значение char, int startIndex)

Возвращает нулевой индекс первого вхождения указанного символа Unicode в этой строке, начиная поиск с указанной позиции символа.

16

public int IndexOf (строковое значение, int startIndex)

Возвращает нулевой индекс первого вхождения указанной строки в этом случае, начиная поиск с указанной позиции символа.

17

public int IndexOfAny (char [] anyOf)

Возвращает нулевой индекс первого вхождения в этом экземпляре любого символа в указанном массиве символов Юникода.

18

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

Возвращает нулевой индекс первого вхождения в этом экземпляре любого символа в указанном массиве символов Юникода, начиная поиск с указанной позиции символа.

19

публичная строка Insert (int startIndex, строковое значение)

Возвращает новую строку, в которой указанная строка вставлена ​​в указанную позицию индекса в текущем строковом объекте.

20

public static bool IsNullOrEmpty (строковое значение)

Указывает, является ли указанная строка пустой или пустой строкой.

21

открытая статическая строка Join (разделитель строк, params string [] value)

Объединяет все элементы массива строк, используя указанный разделитель между каждым элементом.

22

открытая статическая строка Join (разделитель строк, значение string [], int startIndex, int count)

Объединяет указанные элементы массива строк, используя указанный разделитель между каждым элементом.

23

public int LastIndexOf (значение символа)

Возвращает нулевую позицию индекса последнего вхождения указанного символа Unicode в текущем строковом объекте.

24

public int LastIndexOf (строковое значение)

Возвращает нулевую позицию индекса последнего вхождения указанной строки в текущем строковом объекте.

25

открытая строка Remove (int startIndex)

Удаляет все символы в текущем экземпляре, начиная с указанной позиции и продолжая до последней позиции, и возвращает строку.

26

открытая строка Remove (int startIndex, int count)

Удаляет указанное количество символов в текущей строке, начиная с указанной позиции, и возвращает строку.

27

публичная строка Replace (char oldChar, char newChar)

Заменяет все вхождения указанного символа Unicode в текущем строковом объекте на указанный символ Unicode и возвращает новую строку.

28

публичная строка Replace (строка oldValue, строка newValue)

Заменяет все вхождения указанной строки в текущем строковом объекте на указанную строку и возвращает новую строку.

29

открытая строка [] Split (params char [] разделитель)

Возвращает строковый массив, содержащий подстроки в текущем строковом объекте, разделенные элементами указанного массива символов Unicode.

30

открытая строка [] Split (разделитель char [], int count)

Возвращает строковый массив, содержащий подстроки в текущем строковом объекте, разделенные элементами указанного массива символов Unicode. Параметр int указывает максимальное количество возвращаемых подстрок.

31

public bool StartsWith (строковое значение)

Определяет, соответствует ли начало этого экземпляра строки указанной строке.

32

public char [] ToCharArray ()

Возвращает массив символов Unicode со всеми символами в текущем строковом объекте.

33

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

Возвращает массив символов Unicode со всеми символами в текущем строковом объекте, начиная с указанного индекса и до указанной длины.

34

открытая строка ToLower ()

Возвращает копию этой строки, преобразованную в нижний регистр.

35

открытая строка ToUpper ()

Возвращает копию этой строки, преобразованную в верхний регистр.

36

открытая строка Trim ()

Удаляет все начальные и конечные пробельные символы из текущего объекта String.

public static int Compare (строка strA, строка strB)

Сравнивает два указанных строковых объекта и возвращает целое число, которое указывает их относительное положение в порядке сортировки.

public static int Compare (строка strA, строка strB, bool ignoreCase)

Сравнивает два указанных строковых объекта и возвращает целое число, которое указывает их относительное положение в порядке сортировки. Однако он игнорирует случай, если логический параметр имеет значение true.

открытая статическая строка Concat (строка str0, строка str1)

Объединяет два строковых объекта.

открытая статическая строка Concat (строка str0, строка str1, строка str2)

Объединяет три строковых объекта.

открытая статическая строка Concat (строка str0, строка str1, строка str2, строка str3)

Объединяет четыре строковых объекта.

public bool Contains (строковое значение)

Возвращает значение, указывающее, встречается ли указанный объект String в этой строке.

публичная статическая строка Copy (строка str)

Создает новый объект String с тем же значением, что и указанная строка.

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

Копирует указанное количество символов из указанной позиции объекта String в указанную позицию в массиве символов Unicode.

public bool EndsWith (строковое значение)

Определяет, соответствует ли конец строкового объекта указанной строке.

public bool Equals (строковое значение)

Определяет, имеют ли текущий объект String и указанный объект String одинаковые значения.

public static bool Equals (строка a, строка b)

Определяет, имеют ли два указанных объекта String одинаковое значение.

открытый статический формат строки (формат строки, объект arg0)

Заменяет один или несколько элементов формата в указанной строке строковым представлением указанного объекта.

public int IndexOf (значение char)

Возвращает нулевой индекс первого вхождения указанного символа Unicode в текущей строке.

public int IndexOf (строковое значение)

Возвращает нулевой индекс первого вхождения указанной строки в этом экземпляре.

public int IndexOf (значение char, int startIndex)

Возвращает нулевой индекс первого вхождения указанного символа Unicode в этой строке, начиная поиск с указанной позиции символа.

public int IndexOf (строковое значение, int startIndex)

Возвращает нулевой индекс первого вхождения указанной строки в этом случае, начиная поиск с указанной позиции символа.

public int IndexOfAny (char [] anyOf)

Возвращает нулевой индекс первого вхождения в этом экземпляре любого символа в указанном массиве символов Юникода.

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

Возвращает нулевой индекс первого вхождения в этом экземпляре любого символа в указанном массиве символов Юникода, начиная поиск с указанной позиции символа.

публичная строка Insert (int startIndex, строковое значение)

Возвращает новую строку, в которой указанная строка вставлена ​​в указанную позицию индекса в текущем строковом объекте.

public static bool IsNullOrEmpty (строковое значение)

Указывает, является ли указанная строка пустой или пустой строкой.

открытая статическая строка Join (разделитель строк, params string [] value)

Объединяет все элементы массива строк, используя указанный разделитель между каждым элементом.

открытая статическая строка Join (разделитель строк, значение string [], int startIndex, int count)

Объединяет указанные элементы массива строк, используя указанный разделитель между каждым элементом.

public int LastIndexOf (значение символа)

Возвращает нулевую позицию индекса последнего вхождения указанного символа Unicode в текущем строковом объекте.

public int LastIndexOf (строковое значение)

Возвращает нулевую позицию индекса последнего вхождения указанной строки в текущем строковом объекте.

открытая строка Remove (int startIndex)

Удаляет все символы в текущем экземпляре, начиная с указанной позиции и продолжая до последней позиции, и возвращает строку.

открытая строка Remove (int startIndex, int count)

Удаляет указанное количество символов в текущей строке, начиная с указанной позиции, и возвращает строку.

публичная строка Replace (char oldChar, char newChar)

Заменяет все вхождения указанного символа Unicode в текущем строковом объекте на указанный символ Unicode и возвращает новую строку.

публичная строка Replace (строка oldValue, строка newValue)

Заменяет все вхождения указанной строки в текущем строковом объекте на указанную строку и возвращает новую строку.

открытая строка [] Split (params char [] разделитель)

Возвращает строковый массив, содержащий подстроки в текущем строковом объекте, разделенные элементами указанного массива символов Unicode.

открытая строка [] Split (разделитель char [], int count)

Возвращает строковый массив, содержащий подстроки в текущем строковом объекте, разделенные элементами указанного массива символов Unicode. Параметр int указывает максимальное количество возвращаемых подстрок.

public bool StartsWith (строковое значение)

Определяет, соответствует ли начало этого экземпляра строки указанной строке.

public char [] ToCharArray ()

Возвращает массив символов Unicode со всеми символами в текущем строковом объекте.

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

Возвращает массив символов Unicode со всеми символами в текущем строковом объекте, начиная с указанного индекса и до указанной длины.

открытая строка ToLower ()

Возвращает копию этой строки, преобразованную в нижний регистр.

открытая строка ToUpper ()

Возвращает копию этой строки, преобразованную в верхний регистр.

открытая строка Trim ()

Удаляет все начальные и конечные пробельные символы из текущего объекта String.

Вы можете посетить библиотеку MSDN для получения полного списка методов и конструкторов классов String.

Примеры

Следующий пример демонстрирует некоторые из методов, упомянутых выше —

Сравнение строк

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() ;
      }
   }
}

Когда приведенный выше код компилируется и выполняется, он дает следующий результат —

This is test and This is text are not equal.

Строка содержит строку

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() ;
      }
   }
}

Когда приведенный выше код компилируется и выполняется, он дает следующий результат —

The sequence 'test' was found.

Получение подстроки

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);
      }
   }
}

Когда приведенный выше код компилируется и выполняется, он дает следующий результат —

San Pedro

Строки соединения

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);
      }
   }
}

Когда приведенный выше код компилируется и выполняется, он дает следующий результат —