Описание языка PascalABC.NET | страница 24
s += 'Маша'; // s = 'ПетяМаша'
Строка может складываться с числом, при этом число предварительно преобразуется к строковому представлению:
s := 'Ширина: '+15; // s = 'Ширина: 15'
s := 20.5+''; // s = '20.5'
s += 1; // s = '20.51'
Над строками и целыми определена операция *: s*n и n*s означает строку, образованную из строки s, повторенной n раз:
s := '*'*10; // s = '**********'
s := 5*'ab' // s = 'ababababab'
s := 'd'; s *= 3; // s = 'ddd'
Строки реализуются типом System.String платформы .NET и представляют собой ссылочный тип. Таким образом, все операции над строками унаследованы от типа System.String. Однако, в отличие от .NET - строк, строки в PascalABC.NET изменяемы. Например, можно изменить s[i] (в .NET нельзя). Более того, строки string в PascalABC.NET ведут себя как размерные: после
var s2 := 'Hello';
var s1 := s2;
s1[2] := 'a';
строка s2 не изменится. Аналогично при передаче строки по значению в подпрограмму создается копия строки, т.е. обеспечивается поведение, характерное для Delphi Object Pascal, а не для .NET.
Однако, строке можно присвоить 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 |