Строки переменной длины.
Строки постоянной длины.
Символы и строки.
Для представления символов используется тип char, который реализуется на основе класса Char.
Основные методы класса char.
Char.IsDigit() - является ли литера цифрой.
Char.IsLetter() - является ли литера буквой.
Char.isLetterOrDigit()- является ли цифрой или буквой
Char.IsWhiteSpace() - является ли пробелом
Char.ToLower() - преобразует в нижний регистр
Char.ToUpper() - преобразует в верхний регистр.
Отличае в том, что функции поддерживают символы Unicode.
В качестве символьных констант может использоваться символ @
Для таких строк эффективно реализиуется следущие операции:
1) Определение вхождение одной строки в другую.
2) Выделение подстрок.
3) Замена симвовлов строки.
Для представления строк постоянной длины используется массив. Массив не преспособен к изменению размеров. И поэтому для него трудно организовать операции вставки и удаления. В C# строки постоянной длины реализуются с помощью массива класса Char – Char[]. Это обычный массив, поэтому строка не завершается нуль-литерой. Более того массив нельзя инициализировать строковой константой Char[] m = “mbc” - ошибка на стадии компиляции.
|
|
Реализуются с помощью класса String. Объекты класса Sting, будучи созданны не могут быть в дальнешем изменены. Такие методы класса, как Insert, Replace возращают новый объект, содержащий измененый текст. Элементами класса String являются символы юникода, однако в C# неопределено преобразование между классами String и массивом символов Char. В то же время, у класса String есть метод String.ToCharArray(), который позволяет сделать такое преобразование. Обратная операция неорпделена, поскольку мето ToString класса Char[] выдает информацию о типе класса. В то-же время такое преобразовани е можно организовать вручную.
String tostring(char[]ar)
{
string result = "";
for(int i=0;i<ar.Lengthl;i++)
result += ar[i];
return result;
}
1) Операция присваивания. Хотя String имеет ссылочный тип, симантика присваивания для строк имеет семантику значимого присваивания.
2) Операция сравнения на равенство =/!=. Они перегружены и сравнивают не ссылки, а сами значения строк.
3) Бинарная операция +. Сцепляет строки.
4) Операция досутпа по индексу []. Позволяет получить объект типа Char, который досутпен только для чтения.
Статические методы класса String.
Empty() - возвращает пустую строку. При сравнении надо сравнивать с Empty(), а не с пустой строкой.
Compare() - производит сравнение с учетом регистра и национальных особенностей.
CompareOriginal() - производит сравнение по коду символов.
Copy() - создает копию строки.
Format() - форматирует строку в соответствии с приведенными спецификаторами формата. Они отличаются от аналогичных в C++.
|
|
Динамические методы класса String.
Insert — вставка подстроки.
Remove- удаляет подстроку.
Replace – заменяет подстроку.
Substring – выделяет подстроку.
IndexOf — получение индекса первого вхождения подстроки.
LastIndexOf — получения индекса последенего вхождения подстроки.