Общие сведения о строках в C#
Работа со строками в C# – одна из наиболее распространенных задач. Строки в C# представлены классом System.String
и относятся к ссылочным типам данных.
Класс String
содержит закрытое поле к котором хранятся объекты типа Char
, представляющие собой отдельные символы строки. Строки в C# неизменяемы (почти), поэтому и символы внутри строки доступны только для чтения. Для того, чтобы получить измененную строку нужно создать новый экземпляр строки, и присвоить ему измененную версию.
Тип System.String
в C# имеет эквивалентный псевдоним – string
, т.е. не имеет значения какой из этих вариантов использовать в программе.
Инициализация строк выполняется посредством оператора присваивания:
string s = "Новая строка"; s = "Другая строка";
Сравнение строк
Строки сравниваются при помощи операторов сравнения: равенство – ( ==
) и неравенство ( !=
):
string s1 = "Строка1"; string s2 = "Строка2"; if ( s1 == s2 ) Console.WriteLine( "Это одинаковые строки." ); if ( s1 != s2 ) Console.WriteLine( "Это разные строки." ); // Вывод: // Это разные строки.
Сравнение строк с помощью метода Equals
Строки можно сравнивать при помощи метода Equals
. Этот метод чувствителен к регистру, т.е. две строки набранные в разном регистре будут считаться разными.
string s1 = "Первая строка"; Console.WriteLine( s1.Equals( "Первая строка" ) ); // Вывод: True Console.WriteLine( s1.Equals( "первая строка" ) ); // Вывод: False
Можно также использовать статический метод String.Equals
, как показано в примере:
string s1 = "Первая строка"; string s2 = "Вторая строка"; Console.WriteLine( String.Equals( s1, s2 ) ); // Вывод: False
Сравнение строк с помощь метода String.Compare
Еще одним способом сравнения строк является статический метод String.Compare
. Этот метод имеет несколько перегруженных вариантов, наибольший интерес среди которых представляют следующие:
// Сравнивает две строки public static int Compare(String strA, String strB); // Сравнивает две строки без учета регистра public static int Compare(String strA, String strB, bool ignoreCase); // Сравнивает две строки используя StringComparison public static int Compare(String strA, String strB, StringComparison comparisonType);
По результатам сравнения строк метод String.Compare
возвращает следующие значения:
Возвращаемое значение | Описание |
---|---|
-1 | Первая строка будет находиться ниже в результатах сортировки |
0 | Строки равны |
1 | Первая строка будет находиться выше в результатах сортировки |
Пример использования метода String.Compare
:
string s1 = "Первая строка"; string s2 = "первая строка"; Console.WriteLine(string.Compare(s1, s2)); // Вывод: 1 Console.WriteLine(string.Compare(s2, s1)); // Вывод: -1 Console.WriteLine(string.Compare(s1, s2, true)); // Вывод: 0