KnigaRead.com/

W Cat - Описание языка PascalABC.NET

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн W Cat, "Описание языка 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

Тип string в PascalABC.NET является классом и содержит ряд свойств, статических и экземплярных методов, а также методов расширения.

В методах класса string считается, что строки индексируются с нуля. Кроме того, ни один метод не меняет строку, т.к. строки в .NET являются неизменяемыми.

Свойства класса String

Свойство

Описание

s[i]

Индексное свойство. Возвращает или позволяет изменить i-тый символ строки s. Строки в PascalABC.NET индексируются от 1.

Length: integer

Возвращает длину строки

Статические методы класса String

Метод

Описание

String.Compare(s1,s2: string): integer

Сравнивает строки s1 и s2. Возвращает число <0 если s1<s2, =0 если s1=s2 и >0 если s1>s2

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

Возвращает индекс последнего вхождения любого символа из массива сс

PadLeft(n: integer): string

Возвращает строку, полученную из исходной строки выравниванием по правому краю с заполнением пробелами слева до длины n

PadRight(n: integer): string

Возвращает строку, полученную из исходной строки выравниванием по левому краю с заполнением пробелами справа до длины n

Remove(from,len: integer): string

Возвращает строку, полученную из исходной строки удалением len симолов с позиции from

Replace(s1,s2: string): string

Возвращает строку, полученную из исходной строки заменой всех вхождений подстроки s1 на строку s2

Split(params delim: array of char): array of string

Возвращает массив строк, полученный расщеплением исходной строки на слова, при этом в качестве разделителей используется любой из символов delim (по умолчанию - пробел)

StartsWith(s: string): boolean

Возвращает True, если текущая строка начинается на s, и False в противном случае

Substring(from,len: integer): string

Возвращает подстроку исходной строки с позиции from длины len

ToCharArray: array of char

Возвращает динамический массив символов исходной строки

ToLower: string

Возвращает строку, приведенную к нижнему регистру

ToUpper: string

Возвращает строку, приведенную к верхнему регистру

Trim: string

Возвращает строку, полученную из исходной удалением лидирующих и завершающих пробелов

TrimEnd(params cc: array of char): string

Возвращает строку, полученную из исходной удалением завершающих символов из массива cc

TrimStart(params cc: array of char): string

Возвращает строку, полученную из исходной удалением лидирующих символов из массива cc

Методы расширения класса String

Некоторые методы расширения - стандартные для .NET, некоторые реализованы только в PascalABC.NET.

Метод

Описание

Inverse: string

Возвращает инверсию строки

Print

Выводит буквы строки, разделенные пробелом

Println

Выводит буквы строки, разделенные пробелом, и осуществляет переход на новую строку

ReadInteger(var from: integer): integer

Считывает из строки целое число с позиции from и возвращает его. Позиция from при этом увеличивается на считанный элемент

ReadReal(var from: integer): real

Считывает из строки вещественное число с позиции from и возвращает его. Позиция from при этом увеличивается на считанный элемент

ReadWord(var from: integer): string

Считывает из строки слово до пробела или до конца строки с позиции from и возвращает его. Позиция from при этом увеличивается на считанный элемент

ToInteger: integer

Преобразует строку к целому и возвращает его. Если это невозможно, генерируется исключение

ToIntegers: array of integer

В строке должны храниться целые, разделенные пробелами. Возвращается массив целых. Если это невозможно, генерируется исключение

ToReal: real

Преобразует строку к вещественному и возвращает его. Если это невозможно, генерируется исключение

ToReals: array of real

В строке должны храниться вещественные, разделенные пробелами. Возвращается массив вещественных. Если это невозможно, генерируется исключение

ToWords(params delim: array of char): array of string

Возвращает массив строк, полученный расщеплением исходной строки на слова, при этом в качестве разделителей используется любой из символов delim (по умолчанию - пробел). В отличие от s.Split не включает в итоговый массив пустые строки. В частности, это означает, что слова могут быть разделены несколькими разделителями delim

Массивы

Массив представляет собой набор элементов одного типа, каждый из которых имеет свой номер, называемый индексом (индексов может быть несколько, тогда массив называется многомерным).

Массивы в PascalABC.NET делятся на статические и динамические.

При выходе за границы изменения индекса в PascalABC.NET всегда генерируется исключение.

Статические массивы

Описание статического массива

Статические массивы в отличие от динамических задают свой размер непосредственно в типе. Память под такие массивы выделяется сразу при описании.

Тип статического массива конструируется следующим образом:

array [тип индекса1, ..., тип индексаN] of базовый тип

Тип индекса должен быть порядковым. Обычно тип индекса является диапазонным и представляется в виде a..b, где a и b - константные выражения целого, символьного или перечислимого типа. Например:

type

MyEnum = (w1,w2,w3,w4,w5);

Arr = array [1..10] of integer;

var

a1,a2: Arr;

b: array ['a'..'z',w2..w4] of string;

c: array [1..3] of array [1..4] of real;

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*