Без констант не обойтись. В C# существуют два вида строковых констант:
· обычные константы, которые представляют строку символов, заключенную в кавычки;
· @-константы, заданные обычной константой c предшествующим знаком @.
В обычных константах некоторые символы интерпретируются особым образом. Связано это прежде всего с тем, что необходимо уметь задавать в строке непечатаемые символы, такие, как, например, символ табуляции. Возникает необходимость задавать символы их кодом - в виде escape-последовательностей. Для всех этих целей используется комбинация символов, начинающаяся символом "\" - обратная косая черта. Так, пары символов: "\n", "\t", "\\", "\"" задают соответственно символ перехода на новую строку, символ табуляции, сам символ обратной косой черты, символ кавычки, вставляемый в строку, но не сигнализирующий о ее окончании. Комбинация "\xNNNN" задает символ, определяемый шестнадцатеричным кодом NNNN. Хотя такое решение возникающих проблем совершенно естественно, иногда возникают неудобства: например, при задании констант, определяющих путь к файлу, приходится каждый раз удваивать символ обратной косой черты. Это одна из причин, по которой появились @-константы.
В @-константах все символы трактуются в полном соответствии с их изображением. Поэтому путь к файлу лучше задавать @-константой. Единственная проблема в таких случаях: как задать символ кавычки, чтобы он не воспринимался как конец самой константы. Решением является удвоение символа. Вот соответствующие примеры:
В языке C# существует понятие неизменяемый (immutable)класс. Для такого класса невозможно изменить значение объекта при вызове его методов. Динамические методы могут создавать новый объект, но не могут изменить значение существующего объекта.
К таким неизменяемым классам относится и класс String. Ни один из методов этого класса не меняет значения существующих объектов. Конечно, некоторые из методов создают новые значения и возвращают в качестве результата новые строки. Невозможность изменять значения строк касается не только методов. Аналогично, при работе со строкой как с массивом разрешено только чтение отдельных символов, но не их замена. Оператор присваивания из нашего последнего примера, в котором делается попытка изменить первый символ строки, недопустим, а потому закомментирован.
//Неизменяемые значения
s1= "Zenon"; ch1 = s1[0];
//s1[0]='L';
Метод
Описание
Empty
Возвращается пустая строка. Свойство со статусом read only
Compare()
Сравнение двух строк. Метод перегружен. Реализации метода позволяют сравнивать как строки, так и подстроки. При этом можно учитывать или не учитывать регистр, особенности национального форматирования дат, чисел и т.д.
CompareOrdinal
Сравнение двух строк. Метод перегружен. Реализации метода позволяют сравнивать как строки, так и подстроки. Сравниваются коды символов
Concat()
Конкатенация строк. Метод перегружен, допускает сцепление произвольного числа строк
Copy()
Создается копия строки
Format()
Выполняет форматирование в соответствии с заданными спецификациями формата. Ниже приведено более полное описание метода
Join()
Конкатенация массива строк в единую строку. При конкатенации между элементами массива вставляются разделители. Операция, заданная методом Join, является обратной к операции, заданной методом Split. Последний является динамическим методом и, используя разделители, осуществляет разделение строки на элементы
Операции, разрешенные над строками в C#, разнообразны. Методы этого класса позволяют выполнять вставку, удаление, замену, поиск вхождения подстроки в строку. Класс String наследует методы класса Object, частично их переопределяя. Рассмотрим наиболее характерные методы при работе со строками.
Сводка методов, приведенная в таблице дает достаточно полную картину широких возможностей, имеющихся при работе со строками в C#. Следует помнить, что класс string является неизменяемым. Поэтому Replace, Insert и другие методы представляют собой функции, возвращающие новую строку в качестве результата и не изменяющие строку, вызвавшую метод
.
Метод
Описание
Insert
Вставляет подстроку в заданную позицию
Remove
Удаляет подстроку в заданной позиции
Replace
Заменяет подстроку в заданной позиции на новую подстроку
Substring
Выделяет подстроку в заданной позиции
IndexOf,IndexOfAny, LastIndexOf, LastIndexOfAny
Определяются индексы первого и последнего вхождения заданной подстроки или любого символа из заданного набора
StartsWith, EndsWith
Возвращается true или false, в зависимости от того, начинается или заканчивается строка заданной подстрокой
PadLeft, PadRight
Выполняет набивку нужным числом пробелов в начале и в конце строки
Trim, TrimStart, TrimEnd
Обратные операции к методам Pad. Удаляются пробелы в начале и в конце строки, или только с одного ее конца
ToCharArray
Преобразование строки в массив символов
Класс Stringреализует статический метод, копирующий строки:
string Copy(string str);
string strCopy = string.Copy(str);
Возможно обратное преобразование строки в массив символов:
char[] ToCharArray();
char[] ToCharArray(int iStartlndex, int iCount) ;
Аргумент iStartlndex определяет начальный индекс в строке.
void CopyTo(int iStartlndexSrc, char[] achDst, int iStartlndexDst, int iCount) ;
Первый аргумент определяет начальный индекс в строке, третий — начальный индекс в массиве
Методы ToCharArrayсоздают массив символов. Чтобы использовать метод СоруТо, массив achDstдолжен существовать.
Методы Substringсоздают новую строку, представляющую собой фрагмент исходной:
string Substring(int iStartlndex);
Возвращает подстроку, с указанного индекса и до конца исходной строки.
string Substring(int iStartlndex, int ICount) ;
Возвращает подстроку, с указанного индекса количеством ICount.