String — различия между версиями
Humbug (обсуждение | вклад) (→substr_int) |
Humbug (обсуждение | вклад) (→get) |
||
Строка 73: | Строка 73: | ||
Метод возвращает числовой код символа, расположенного по переданному индексу (смещение относительно начала строки). При передаче индекса, выходящего за границы строки, будет возбуждено исключение <tt>[[Классы исключений#ERangeError|ERangeError]]</tt>. | Метод возвращает числовой код символа, расположенного по переданному индексу (смещение относительно начала строки). При передаче индекса, выходящего за границы строки, будет возбуждено исключение <tt>[[Классы исключений#ERangeError|ERangeError]]</tt>. | ||
+ | |||
+ | <source lang="kpp" line="1"> | ||
+ | export function void main() { | ||
+ | for(var int count=0;count<10; count++) { | ||
+ | print("0123456789".get(count)); | ||
+ | print(" "); | ||
+ | } | ||
+ | } | ||
+ | </source> | ||
+ | Вернет: 48 49 50 51 52 53 54 55 56 57 | ||
== setc == | == setc == |
Версия 19:13, 12 июня 2009
Класс string используется для хранения и обработки стороковых данных. Класс предоставляет большое количество методов для управления строками, таких как: выделение, поиск и замена подстрок. Важно отметить, что все строки хранятся и обрабатываются в кодировке UTF-8. Например, метод length для этого класса, возвращает длинну строки в символах, а не в байтах. Таким образом, реальный размер строки, содержащей многобайтные символы, не будет совпадать с ее длиной. При необходимости работы со строками как с потоком байтов, следует использовать класс bytea.
Стандартные библиотеки конкретных языков расширяют функциональность данного класса, вводя дополнительные методы. Например, библиотека языка K++ вводит операторы [] и []= для упрощения работы со строками. Дополнительно, там же вводятся операции с использованием регулярных выражений.
Родители: Object
Методы:
getc
get
setc
set
at
empty
length
clear
substr
substr_int
copy
copy_int
replace
replace_int
replace_rel
replace_rel_int
replace_all
insert
insert_int
erase
erase_int
find
find_first_of
find_first_not_of
begin
end
Приводится к типам: int real uid bytea
Реализует операторы:
+,
+=,
<<,
присваивания,
сравнения
оператор +
operator + (строка: string)
Возвращает: string
Метод возвращает новую строку, полученную путем конкатенации (сложения) текущей и переданной строк.
оператор +=
operator += (строка: string)
Возвращает: текущий объект
Метод изменяет текущую строку, дописывая ей в конец строку, переданную в качестве параметра.
оператор <<
Эквивалент оператора +.
getc
getc(позиция: string_iterator)
Возвращает: int
Метод возвращает числовой код символа, на который указывает переданный итератор.
get
get(индекс: int)
Возвращает: int
Метод возвращает числовой код символа, расположенного по переданному индексу (смещение относительно начала строки). При передаче индекса, выходящего за границы строки, будет возбуждено исключение ERangeError.
<source lang="kpp" line="1"> export function void main() {
for(var int count=0;count<10; count++) { print("0123456789".get(count)); print(" "); }
} </source> Вернет: 48 49 50 51 52 53 54 55 56 57
setc
setc(позиция: string_iterator, новый код: int)
Возвращает: текущий объект
Метод устанавливает числовой код символа, на который указывает переданный итератор.
set
set(индекс: int, новый код: int)
Возвращает: текущий объект
Метод устанавливает числовой код символа, расположенного по переданному индексу (смещение относительно начала строки). При передаче индекса, выходящего за границы строки, будет возбуждено исключение ERangeError.
at
set(индекс: int)
Возвращает: string_iterator
Метод создает строковый итератор и инициализирует его так, чтобы он указывал на символ по переданному индексу.
empty
Возвращает: логическое значение
Метод проверяет строку на наличие в ней данных.
length
Возвращает: int
Метод возвращает длину строки в символах.
clear
Возвращает: текущий объект
Очищает строку от содержимого. После этого строка считается пустой.
substr
substr(начальная позиция: string_iterator, количество символов: int)
Возвращает: string
Метод возвращает указанное количество символов исходной строки, начиная с позиции итератора.
substr_int
substr_int(начальная позиция: int, количество символов: int)
Возвращает: string
Метод аналогичен методу substr, только начальная позиция принимается в виде числа.
<source lang="kpp" line="1"> export function void main() { var string word = "Hello"; for(var int i=0;i<word.length(); i++) { puts(word.substr_int(i,1)); } } </source>
Вернет:
- H
- e
- l
- l
- o
<source lang="kpp" line="1"> export function void main() { puts("Hello_world!".substr_int(6,6)); } </source> Вернет: world!
copy
substr(начальная позиция: string_iterator, конечная позиция: string_iterator)
Возвращает: string
Метод возвращает подстроку исходной строки по указанным позициям.
copy_int
copy_int(начальная позиция: int, конечная позиция: int)
Возвращает: string
Метод аналогичен методу copy, только позиции принимаются в виде чисел.
replace
replace(начальная позиция: string_iterator, количество символов: int, строка замены: string)
Возвращает: текущий объект
Метод заменяет подстроку исходной строки на данные, предоставленные пользователем.
replace_int
replace(начальная позиция: int, количество символов: int, строка замены: string)
Возвращает: текущий объект
Метод аналогичен методу replace, только позиция передается в виде числа.
replace_rel
replace_rel_int
replace_all
replace_all(подстрока поиска: string, подстрока замены: string)
Возвращает: текущий объект
Метод находит все включения подстроки поиска в исходной строке и заменяет их на подстроку замены.
insert
insert(позиция: string_iterator, строка: string)
Возвращает: текущий объект
Метод вставляет переданную строку в исходную, в месте, указанном итератором.
insert_int
insert(позиция: int, строка: string)
Возвращает: текущий объект
То же, что и метод insert, только позиция передается числом.
erase
erase(начальная позиция: string_iterator, количество символов: string_iterator)
Возвращает: текущий объект
Метод вырезает из исходной строки соответствующую подстроку.
erase_int
erase_int(начальная позиция: int, количество символов: int)
Возвращает: текущий объект
То же, что и метод erase, только позиция передается числом.
find
find(подстрока поиска: string, начальная позиция: string_iterator)
Возвращает: string_iterator
Метод ищет в исходной строке искомую подстроку и возвращает итератор начала вхождения. Для поиска подстроки, начиная с некоторой позиции, может быть передан второй параметр — итератор, установленный на нужную позицию.
find_first_of
find_first_not_of
begin
Возвращает: string_iterator
Метод возвращает указатель на начало строки.
end
Возвращает: string_iterator
Метод возвращает указатель на конец строки.
Примечание: Под "концом строки" здесь понимается позиция за последним символом строки. Таким образом, данный итератор не указывает на данные строки, а служит только как маркер конца строки. Конечно, при желании, можно использовать оператор string_iterator:--, для движения по строке в обратную сторону.