Однако, строке можно присвоить nil, что необходимо для работы с NET-кодом.
Кроме того, в PascalABC.NET реализованы размерные строки. Для их описания используется тип string[n], где n - константа целого типа, указывающая длину строки. Размерные строки, в отличие от обычных, можно использовать как компоненты типизированных файлов. Для совместимости с Delphi Object Pascal в стандартном модуле описан тип shortstring=string[255].
Стандартные подпрограммы работы со строками.
Члены класса string.
Тип string в PascalABC.NET является классом и содержит ряд свойств, статических и экземплярных методов, а также методов расширения.
В методах класса string считается, что строки индексируются с нуля. Кроме того, ни один метод не меняет строку, т.к. строки в .NET являются неизменяемыми.
Свойство | Описание |
s[i] | Индексное свойство. Возвращает или позволяет изменить i-тый символ строки s. Строки в PascalABC.NET индексируются от 1. |
Length: integer | Возвращает длину строки |
Статические методы класса String
Метод | Описание |
String.Compare(s1,s2: string): integer | Сравнивает строки s1 и s2. Возвращает число <0 если s1 |
String.Compare(s1,s2: string; ignorecase: boolean): integer | То же. Если ignorecase=True, то строки сравниваются без учета регистра букв |
String.Format(fmtstr: string, params arr: array of object): string; | Форматирует параметры arr согласно форматной строке fmtstr |
String.Join(ss: array of string; delim: string): string | Возвращает строку, полученную слиянием строк ss с использованием delim в качестве разделителя |
Экземплярные методы класса String
Отметим, что все экземплярные методы не меняют строку, как это может показаться на первый взгляд, а при необходимости возвращают измененную строку. Кроме того, считается, что символы в сроке индексируются с нуля.
Метод | Описание |
Contains(s: string): boolean | Возвращает True, если текущая строка содержит s, и False в противном случае |
EndsWith(s: string): boolean | Возвращает True, если текущая строка заканчивается на s, и False в противном случае |
IndexOf(s: string): integer | Возвращает индекс первого вхождения подстроки s в текущую строку или -1 если подстрока не найдена |
IndexOf(s: string; start,count: integer): integer | Возвращает индекс первого вхождения подстроки s в текущую строку или -1 если подстрока не найдена. Поиск начинается с символа с номером start и распространяется на следующие count символов |
IndexOfAny(cc: array of char): integer | Возвращает индекс первого вхождения любого символа из массива сс |
Insert(from: integer; s: string): string | Возвращает строку, полученную из исходной строки вставкой подстроки s в позицию from |
LastIndexOf(s: string): integer | Возвращает индекс последнего вхождения подстроки s в текущую строку |
LastIndexOf(s: string; start,count: integer): integer | Возвращает индекс последнего вхождения подстроки s в текущую строку или -1 если подстрока не найдена. Поиск начинается с символа с номером start и распространяется на следующие count символов |
LastIndexOfAny(a: array of char): integer |