String — различия между версиями
(ehuZbepqFTAB) |
Raw mat (обсуждение | вклад) |
||
(не показаны 33 промежуточные версии 1 участника) | |||
Строка 1: | Строка 1: | ||
− | + | Класс <tt>string</tt> используется для хранения и обработки стороковых данных. Класс предоставляет большое количество методов для управления строками, таких как: выделение, поиск и замена подстрок. Важно отметить, что все строки хранятся и обрабатываются в кодировке '''UTF-8'''. Например, метод <tt>[[#length|length]]</tt> для этого класса, возвращает длинну строки <u>в символах</u>, а не в байтах. Таким образом, реальный размер строки, содержащей многобайтные символы, не будет совпадать с ее длиной. При необходимости работы со строками как с потоком байтов, следует использовать класс <tt>[[bytea]]</tt>. | |
+ | |||
+ | Стандартные библиотеки конкретных языков расширяют функциональность данного класса, вводя дополнительные методы. Например, [[K++#Системная библиотека|библиотека языка K++]] вводит операторы <tt>[]</tt> и <tt>[]=</tt> для упрощения работы со строками. Дополнительно, там же вводятся операции с использованием [[регулярных выражений]]. | ||
+ | |||
+ | |||
+ | '''Родители''': <tt>[[Object]]</tt> <br> | ||
+ | '''Методы''': <tt> | ||
+ | [[#getc|getc]] | ||
+ | [[#get|get]] | ||
+ | [[#setc|setc]] | ||
+ | [[#set|set]] | ||
+ | [[#at|at]] | ||
+ | [[#empty|empty]] | ||
+ | [[#length|length]] | ||
+ | [[#clear|clear]] | ||
+ | [[#substr|substr]] | ||
+ | [[#substr_int|substr_int]] | ||
+ | [[#copy|copy]] | ||
+ | [[#copy_int|copy_int]] | ||
+ | [[#replace|replace]] | ||
+ | [[#replace_int|replace_int]] | ||
+ | [[#replace_rel_|replace_rel]] | ||
+ | [[#replace_rel_int|replace_rel_int]] | ||
+ | [[#replace_all|replace_all]] | ||
+ | [[#insert|insert]] | ||
+ | [[#insert_int|insert_int]] | ||
+ | [[#erase|erase]] | ||
+ | [[#erase_int|erase_int]] | ||
+ | [[#find|find]] | ||
+ | [[#find_first_of|find_first_of]] | ||
+ | [[#find_first_not_of|find_first_not_of]] | ||
+ | [[#begin|begin]] | ||
+ | [[#end|end]]</tt><br> | ||
+ | '''Приводится к типам''': <tt>[[int]] [[real]] [[uid]] [[bytea]]</tt> <br> | ||
+ | '''Реализует операторы''': | ||
+ | <tt>[[#оператор +|+]]</tt>, | ||
+ | <tt>[[#оператор +=|+=]]</tt>, | ||
+ | <tt>[[#оператор <<|<<]]</tt>, | ||
+ | [[оператор присваивания|присваивания]], | ||
+ | [[операторы сравнения|сравнения]] <br> | ||
+ | |||
+ | __NOTOC__ | ||
+ | |||
+ | == оператор + == | ||
+ | |||
+ | operator + (''строка'': <tt>string</tt>) <br> | ||
+ | '''Возвращает''': <tt>string</tt> <br> | ||
+ | |||
+ | Метод возвращает новую строку, полученную путем конкатенации (сложения) текущей и переданной строк. | ||
+ | |||
+ | == оператор += == | ||
+ | |||
+ | operator += (''строка'': <tt>string</tt>) <br> | ||
+ | '''Возвращает''': текущий объект <br> | ||
+ | |||
+ | Метод изменяет текущую строку, дописывая ей в конец строку, переданную в качестве параметра. | ||
+ | |||
+ | == оператор << == | ||
+ | |||
+ | Эквивалент оператора <tt>[[#оператор +|+]]</tt>. | ||
+ | |||
+ | == getc == | ||
+ | |||
+ | getc(''позиция'': <tt>[[string_iterator]]</tt>) <br> | ||
+ | '''Возвращает''': <tt>[[int]]</tt> <br> | ||
+ | |||
+ | Метод возвращает числовой код символа, на который указывает переданный итератор. | ||
+ | |||
+ | == get == | ||
+ | |||
+ | get(''индекс'': <tt>[[int]]</tt>) <br> | ||
+ | '''Возвращает''': <tt>[[int]]</tt> <br> | ||
+ | |||
+ | Метод возвращает числовой код символа, расположенного по переданному индексу (смещение относительно начала строки). При передаче индекса, выходящего за границы строки, будет возбуждено исключение <tt>[[Классы исключений#ERangeError|ERangeError]]</tt>. | ||
+ | |||
+ | == setc == | ||
+ | |||
+ | setc(''позиция'': <tt>[[string_iterator]]</tt>, ''новый код'': <tt>[[int]]</tt>) <br> | ||
+ | '''Возвращает''': текущий объект <br> | ||
+ | |||
+ | Метод устанавливает числовой код символа, на который указывает переданный итератор. | ||
+ | |||
+ | == set == | ||
+ | |||
+ | set(''индекс'': <tt>[[int]]</tt>, ''новый код'': <tt>[[int]]</tt>) <br> | ||
+ | '''Возвращает''': текущий объект <br> | ||
+ | |||
+ | Метод устанавливает числовой код символа, расположенного по переданному индексу (смещение относительно начала строки). При передаче индекса, выходящего за границы строки, будет возбуждено исключение <tt>[[Классы исключений#ERangeError|ERangeError]]</tt>. | ||
+ | |||
+ | == at == | ||
+ | |||
+ | set(''индекс'': <tt>[[int]]</tt>) <br> | ||
+ | '''Возвращает''': <tt>[[string_iterator]]</tt> <br> | ||
+ | |||
+ | Метод создает строковый итератор и инициализирует его так, чтобы он указывал на символ по переданному индексу. | ||
+ | |||
+ | == empty == | ||
+ | |||
+ | '''Возвращает''': [[логическое значение]] <br> | ||
+ | |||
+ | Метод проверяет строку на наличие в ней данных. | ||
+ | |||
+ | == length == | ||
+ | |||
+ | '''Возвращает''': <tt>[[int]]</tt> <br> | ||
+ | |||
+ | Метод возвращает длину строки в символах. | ||
+ | |||
+ | == clear == | ||
+ | |||
+ | '''Возвращает''': текущий объект <br> | ||
+ | |||
+ | Очищает строку от содержимого. После этого строка считается пустой. | ||
+ | |||
+ | == substr == | ||
+ | |||
+ | substr(''начальная позиция:'' <tt>[[string_iterator]]</tt>, ''количество символов'': <tt>[[int]]</tt>) <br> | ||
+ | '''Возвращает''': <tt>string</tt> <br> | ||
+ | |||
+ | Метод возвращает указанное количество символов исходной строки, начиная с позиции итератора. | ||
+ | |||
+ | == substr_int == | ||
+ | |||
+ | substr_int(''начальная позиция:'' <tt>[[int]]</tt>, ''количество символов'': <tt>[[int]]</tt>) <br> | ||
+ | '''Возвращает''': <tt>string</tt> <br> | ||
+ | |||
+ | Метод аналогичен методу <tt>[[#substr|substr]]</tt>, только начальная позиция принимается в виде числа. | ||
+ | |||
+ | == copy == | ||
+ | |||
+ | substr(''начальная позиция:'' <tt>[[string_iterator]]</tt>, ''конечная позиция'': <tt>[[string_iterator]]</tt>) <br> | ||
+ | '''Возвращает''': <tt>string</tt> <br> | ||
+ | |||
+ | Метод возвращает подстроку исходной строки по указанным позициям. | ||
+ | |||
+ | == copy_int == | ||
+ | |||
+ | copy_int(''начальная позиция:'' <tt>[[int]]</tt>, ''конечная позиция'': <tt>[[int]]</tt>) <br> | ||
+ | '''Возвращает''': <tt>string</tt> <br> | ||
+ | |||
+ | Метод аналогичен методу <tt>[[#copy|copy]]</tt>, только позиции принимаются в виде чисел. | ||
+ | |||
+ | == replace == | ||
+ | |||
+ | replace(''начальная позиция'': <tt>[[string_iterator]]</tt>, ''количество символов'': <tt>[[int]]</tt>, ''строка замены'': <tt>string</tt>) <br> | ||
+ | '''Возвращает''': текущий объект <br> | ||
+ | |||
+ | Метод заменяет подстроку исходной строки на данные, предоставленные пользователем. | ||
+ | |||
+ | == replace_int == | ||
+ | |||
+ | replace(''начальная позиция'': <tt>[[int]]</tt>, ''количество символов'': <tt>[[int]]</tt>, ''строка замены'': <tt>string</tt>) <br> | ||
+ | '''Возвращает''': текущий объект <br> | ||
+ | |||
+ | Метод аналогичен методу <tt>[[#replace|replace]]</tt>, только позиция передается в виде числа. | ||
+ | |||
+ | == replace_rel == | ||
+ | |||
+ | == replace_rel_int == | ||
+ | |||
+ | == replace_all == | ||
+ | |||
+ | replace_all(''подстрока поиска'': <tt>string</tt>, ''подстрока замены'': <tt>string</tt>) <br> | ||
+ | '''Возвращает''': текущий объект <br> | ||
+ | |||
+ | Метод находит все включения подстроки поиска в исходной строке и заменяет их на подстроку замены. | ||
+ | |||
+ | == insert == | ||
+ | |||
+ | insert(''позиция'': <tt>[[string_iterator]]</tt>, ''строка'': <tt>string</tt>) <br> | ||
+ | '''Возвращает''': текущий объект <br> | ||
+ | |||
+ | Метод вставляет переданную строку в исходную, в месте, указанном итератором. | ||
+ | |||
+ | == insert_int == | ||
+ | |||
+ | insert(''позиция'': <tt>[[int]]</tt>, ''строка'': <tt>string</tt>) <br> | ||
+ | '''Возвращает''': текущий объект <br> | ||
+ | |||
+ | То же, что и метод <tt>[[#insert|insert]]</tt>, только позиция передается числом. | ||
+ | |||
+ | == erase == | ||
+ | |||
+ | erase(''начальная позиция:'' <tt>[[string_iterator]]</tt>, ''количество символов'': <tt>[[string_iterator]]</tt>) <br> | ||
+ | '''Возвращает''': текущий объект <br> | ||
+ | |||
+ | Метод вырезает из исходной строки соответствующую подстроку. | ||
+ | |||
+ | == erase_int == | ||
+ | |||
+ | erase_int(''начальная позиция:'' <tt>[[int]]</tt>, ''количество символов'': <tt>[[int]]</tt>) <br> | ||
+ | '''Возвращает''': текущий объект <br> | ||
+ | |||
+ | То же, что и метод <tt>[[#erase|erase]]</tt>, только позиция передается числом. | ||
+ | |||
+ | == find == | ||
+ | |||
+ | find(''подстрока поиска'': <tt>string</tt>, <span style="background-color: #EBEBEB;">''начальная позиция'': <tt>[[string_iterator]]</tt></span>) <br> | ||
+ | '''Возвращает''': <tt>[[string_iterator]]</tt> <br> | ||
+ | |||
+ | Метод ищет в исходной строке искомую подстроку и возвращает итератор начала вхождения. Для поиска подстроки, начиная с некоторой позиции, может быть передан второй параметр — итератор, установленный на нужную позицию. | ||
+ | |||
+ | == find_first_of == | ||
+ | |||
+ | == find_first_not_of == | ||
+ | |||
+ | == begin == | ||
+ | |||
+ | '''Возвращает''': <tt>[[string_iterator]]</tt> <br> | ||
+ | |||
+ | Метод возвращает указатель на начало строки. | ||
+ | |||
+ | == end == | ||
+ | |||
+ | '''Возвращает''': <tt>[[string_iterator]]</tt> <br> | ||
+ | |||
+ | Метод возвращает указатель на конец строки. | ||
+ | |||
+ | '''Примечание''': Под "концом строки" здесь понимается позиция за последним символом строки. Таким образом, данный итератор не указывает на данные строки, а служит только как маркер конца строки. Конечно, при желании, можно использовать оператор <tt>[[string_iterator#оператор --|string_iterator:--]]</tt>, для движения по строке в обратную сторону. |
Текущая версия на 13:38, 13 июля 2013
Класс 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.
[править] 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, только начальная позиция принимается в виде числа.
[править] 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:--, для движения по строке в обратную сторону.