Строки
Строки используются для хранения и обработки текстовых данных.
Строковый тип
Строки в PascalABC.NET имеют тип string.
begin
var s: string := 'PascalABC.NET';
Println(s);
end.
Символы строки
Строка состоит из символов типа char.
begin
var s := 'Pascalabc';
var c: char := s[1];
Println(c);
end.
Результат:
P
Длина строки
Свойство Length возвращает количество символов в строке.
begin
var s := 'PascalABC';
Println(s.Length);
end.
Результат:
9
Доступ к символу по индексу
По умолчанию символы строки нумеруются начиная с 1.
begin
var s := 'PascalABC';
Println(s[1]);
Println(s[3]);
end.
Результат:
P
s
Индексация с конца
Индекс ^1 обозначает последний символ строки, ^2 — предпоследний.
begin
var s := 'PascalABC';
Println(s[^1]);
Println(s[^2]);
end.
Результат:
C
B
Нулевая индексация строк
Директива компилятора {$zerobasedstrings} включает нумерацию символов строки начиная с 0.
{$zerobasedstrings}
begin
var s := 'PascalABC';
Println(s[0]);
Println(s[1]);
end.
Результат:
P
a
Изменение символа строки
Символ строки можно изменить по его индексу.
begin
var s := 'Pascalabc';
s[1] := 'p';
Println(s);
end.
Результат:
pascalabc
Перебор символов строки
Цикл foreach позволяет последовательно перебрать все символы строки.
begin
var s := 'Pascalabc';
foreach var c in s do
Print(c);
end.
Результат:
P a s c a l a b c
Конкатенация строк
Операция + соединяет строки.
begin
var s1 := 'Pascal';
var s2 := 'ABC.NET';
var s := s1 + s2;
Println(s);
end.
Результат:
PascalABC.NET
Повторение строки
Операция * позволяет повторить строку несколько раз.
begin
var s := 'abc';
Println(s * 3);
end.
Результат:
abcabcabc
Проверка вхождения символа
Операция in проверяет, содержится ли подстрока в строке.
begin
var s := 'PascalABC.NET';
Println('ABC' in s);
Println('z' in s);
end.
Результат:
True
False
Свойства символов
Для символов типа char можно проверять, является ли символ буквой, цифрой или буквой определённого регистра.
begin
var c: char := 'A';
Println(c.IsLetter);
Println(c.IsDigit);
Println(c.IsUpper);
Println(c.IsLower);
end.
Результат:
True
False
True
False
Изменение регистра строки
Методы ToUpper и ToLower преобразуют регистр всех букв строки.
begin
var s := 'PascalABC.NET';
Println(s.ToUpper);
Println(s.ToLower);
end.
Результат:
PASCALABC.NET
pascalabc.net
Подсчёт вхождений символа
Метод CountOf возвращает количество вхождений символа в строку.
begin
var s := 'abracadabra';
Println(s.CountOf('a'));
end.
Результат:
5
Поиск подстроки
Функция Pos возвращает позицию первого вхождения подстроки.
begin
var s := 'PascalABC.NET';
Println(Pos('ABC', s));
end.
Результат:
7
Замена подстроки
Метод Replace заменяет все вхождения одной подстроки другой.
begin
var s := 'one two one';
s := s.Replace('one', 'three');
Println(s);
end.
Результат:
three two three
Удаление части строки
Процедура Delete удаляет из строки указанное количество символов с заданной позиции.
begin
var s := 'PascalABC.NET';
Delete(s, 7, 3);
Println(s);
end.
Результат:
Pascal.NET
Вставка в строку
Процедура Insert вставляет подстроку в заданную позицию.
begin
var s := 'Pascal.NET';
Insert('ABC', s, 7);
Println(s);
end.
Результат:
PascalABC.NET
Разбиение строки на слова
Метод ToWords разбивает текст на отдельные слова.
begin
var s := 'PascalABC NET is a programming language';
var words := s.ToWords;
words.Count.Println;
end.
Результат:
6
Преобразование числа и строки
Число можно преобразовать в строку, а строковое представление числа — обратно в число.
begin
var x: integer := 123;
var s: string := x.ToString;
var y: integer := s.ToInteger;
Println(s,TypeName(s));
Println(y,TypeName(y));
end.
Результат:
123 string
123 integer