Опубликован: 23.10.2009 | Уровень: для всех | Доступ: свободно
Лекция 7:

Другие типы данных

< Лекция 6 || Лекция 7: 1234 || Лекция 8 >
Таблица 7.4. Функции для работы с текстом
Функция/Метод Описание Пример
Java. Методы класса String
charAt(Позиция) Возвращает символ строки, стоящий в заданной позиции. Позиции отсчитываются с 0.
compareTo( Любая_строка) Сравнивает вызывающий строковый фрагмент и строковый аргумент на предмет первенства в лексикографическом порядке1Лексикографический порядок (lexicographic ordering) совпадает с с упорядочением по алфавиту, когда строки набраны либо прописными, либо строчными буквами. Если вызываемая строка опережает документ, метод возвращает отрицательное значение, Если две сравниваемые строки равны, метод возвращает нулевое значение. Если аргумент опережает вызывающую строку, метод возвращает положительное значение. String entry = "adventure".

Выражение: entry.compareTo("zoo") возвращает отрицательное число.

Выражение: entry.compareTo("adventure") выдаст 0.

Выражение: entry.compareTo("above") выдаст положительное число.

equals(Другая_строка) Возвращает true, если вызывающий объект является строкой и равен объекту Другая_строка. В противном случае возвращает false.
equalsIgnoreCase (Другая_строка) Возвращает true, если вызывающий объект является строкой и равен объекту Другая_строка без учета регистра букв. В противном случае возвращает false.
indexOf( Любая_строка) Возвращает позицию первого вхождения строки: Любая_строка в строковом объекте. Позиция отсчитывается с 0. Возвращает "-1", если Любая_строка не найдена.
indexOf( Любая_строка, Начало) Возвращает позицию первого вхождения строки: Любая_строка в строковом объекте, после позиции Начало. Позиция отсчитывается с 0. Возвращает "-1", если Любая_строка не найдена.
lastIndexOf( Любая_строка) Возвращает позицию последнего вхождения строки: Любая_строка в строковом объекте. Позиция отсчитывается с 0. Возвращает "-1", если Любая_строка не найдена.
length() Возвращает длину строкового фрагмента. String strgreeting = "Привет!". Выражение: Strgreeting.length() возвращает 7.
substring(Начало) Возвращает подстроку строкового фрагмента, начинающегося с позиции Начало и оканчивающегося концевым символом строки. Позиции отсчитываются от 0.
substring(Начало, Конец) Возвращает подстроку строкового фрагмента, начинающегося с позиции Начало и оканчивающегося позицией Конец. Позиции отсчитываются от 0.
toLowerCase() Возвращает исходную строку символов, все символы у которой - строчные.
toUpperCase() Возвращает исходную строку символов, все символы у которой - прописные.
trim() Удаляет в возвращаемой строке ведущие и концевые пробелы.
Таблица 7.5. Функции для работы с текстом
Функция/Метод Описание Пример
VB Script функции
Asc Функция возвращает ASCII код символа или первого символа в строке. Asc("A") - возвращает 65, а Asc("Russia") - 82.
Chr Эта функция возвращает ASCII символ по ASCII коду. Chr(65) - возвращает "A".
Instr Функция используется для получения местоположения одной строки в другой. Функция имеет следующий синтаксис: Instr([Begin_Pos], Str1, Str2, [ComparisionType]), - где Begin_Pos - необязательный элемент, задающий начальную позицию поиска, Str1 - строка, в которой происходит поиск, Str2 - исходная строка, ComparisionType - способ сравнения: 0 - бинарное сравнение (по умолчанию), 1 - сравнение с игнорированием регистра букв.
LCase Возвращает исходную строку символов, все символы у которой - строчные.
Left Функция возвращает определенное число символов из строки. Выражение: Left("VBScript for Internet", 8) - возвращает "VBScript".
Len Функция возвращает число символов в строке. Len("Привет!") - выдает число 7.
LTrim Функция удаляет предшествующие пробелы из строки.
Mid Возвращает определенное число символов из строки. Выражение: Mid("VBScript for Internet", 0. 8) - возвращает "VBScript".
Right Функция возвращает определенное число символов с правой стороны строки. Right("VBScript", 6) - возвращает "Script"
RTrim Функция удаляет последующие пробелы из строки.
Str Эта функция преобразует цифровое выражение в строку.
StrComp Эта функция используется для сравнения двух строк в лексикографическом порядке2Лексикографический порядок (lexicographic ordering) совпадает с с упорядочением по алфавиту, когда строки набраны либо прописными, либо строчными буквами. Если вызываемая строка опережает документ, метод возвращает отрицательное значение, Если две сравниваемые строки равны, метод возвращает нулевое значение. Если аргумент опережает вызывающую строку, метод возвращает положительное значение. , и имеет синтаксис: StrComp( Str1, Str2, CompMeth), - где CompMeth - метод сравнения: 0 - бинарное, 1 - игнорирование регистра символов. Если Str1 равно Str2, то значение - "0", если Str1 < Str2, то значение - "-1", если Str1 > Str2, то значение - "1".
String Функция предназначена для заполнения строки определенным числом символов. String(10, "A") - вернет строку "AAAAAAAAAA".
Trim Функция удаляет и предшествующие, и последующие пробелы из строки.
UCase Возвращает исходную строку символов, все символы у которой - прописные.
Таблица 7.6. Функции для работы с текстом
Функция/Метод Описание Пример
Язык Си. Функции ANSI C
#include <string.h> Заголовочный файл для этих функций
int strlen( char *str ); Возвращает длину строки str1 (позицию его символа \0).
char* strerror( char *str );
char *strncat( char *str1, char *str2, unsigned int n ); Конкатенация строки str1 и str2, но в строку n записывается не более n символов. Возвращается значение строки str1 или NULL при неудаче конкатенации.
int strncmp( char *str1, char *str2, unsigned int n ); Сравниваются не более чем n символов в строке str1 со строкой str2 в лексикографическом порядке. Возвращает: "0" - если строки совпали, "-1" - если str1 < str2, "1" - если str1 > str2.
char *strncpy( char *str1, char *str2, unsigned int n ); Копирует строку str2 в строку str1, но не более чем n символов. Возвращается значение строки str1 или NULL при неудаче копирования.
char *strpbrk( char *str1, char *str2 ); Ищется первое вхождение символа из строки str2 в строке str1. Возвращает указатель на этот символ или NULL, если символы не обнаружены.
char *strrchr( char *str1, char *str2 ); Ищется последнее вхождение символа из строки str2 в строке str1. Возвращает указатель на этот символ или NULL, если символы не обнаружены.
char *strspn( char *str1, char *str2 ); Ищется первое вхождение символа, которого нет в строке str2, в строке str1. Возвращает указатель на этот символ или NULL, если символы не обнаружены.
char *strstr( char *str1, char *str2 ); Ищется первое вхождение подстроки str2 в строке str1. Возвращается указатель на заданную подстроку или NULL в случае ее необнаружения.
char *strtok( char *str1; char *str2 ); Функция разбивает строку str1 на слова, вставляя после каждого из них символ '\0'. Символы, являющиеся разделителями слов, перечислены в строке str2. При первом вызове функция возвращает указатель на str1. При последующем вызове (с параметром str1 == NULL) она возвращает указатели на другие слова в строке str1. Функция возвращает NULL, если все слова закончились.
char *memchr( char *buf, char sim, unsigned cnt ); Функция ведет поиск первого вхождения символа sim в не более чем cnt символов с начала строки buf. Возвращает указатель на символ sim в случае его нахождения или NULL если он не найден.
int memcmp( char *buf1, char *buf2, unsigned cnt ); Сравниваются не более чем cnt символов в строке buf1 со строкой buf2 в лексикографическом порядке. Возвращает: "0" - если строки совпали, "-1" - если buf1 < buf2, "1" - если buf1 > buf2. Символ '\0' в буфере рассматривается как обычный символ, а не признак конца строки.
char *memcpy( char *dst1, char *src2, unsigned int n ); Копирует строку src2 в строку dst1, но не более чем n символов. Возвращается значение строки dst1. Реализация функции гарантирует, что перекрывающие участки будут правильно обработаны.
Функции TURBO C и MSC (дополнительно)
#include <string.h> Заголовочный файл для этих функций
int memicmp(char *buf1, char *buf2, unsigned cnt ); Сравниваются не более чем cnt символов в строке buf1 со строкой buf2 в лексикографическом порядке. Возвращает: "0" - если строки совпали, "-1" - если buf1 < buf2, "1" - если buf1 > buf2. Регистр символов игнорируется. Символ '\0' в буфере рассматривается как обычный символ, а не признак конца строки.
char *memmove(char *buf1, char *buf2, unsigned cnt ); Функция полностью идентична функции memcpy. При копировании перекрывающихся участков гарантируется, что эти участки скопируются правильно.
char *memset( char *dest, char sim, unsigned cnt ); Функция присваивает буферу dest повторяющиеся cnt число раз значения символа sim. Возвращаемое значение - указатель на массив dest. Примечание: с помощью этой функции можно задать строку, содержащую в себе только пустые символы: '\0'. Этого невозможно сделать с помощью команды strnset.
char *strnset( char *str1, char sim, unsigned int n ); Функция присваивает буферу str1 повторяющиеся не более чем n число раз значения символа sim. Возвращаемое значение - указатель на массив str1.
int strnicmp(char *str1, char *str2, unsigned int n ); Сравниваются не более чем n символов в строке str1 со строкой str2 в лексикографическом порядке. Возвращает: "0" - если строки совпали, "-1" - если str1 < str2, "1" - если str1 > str2. Регистр символов игнорируется.
char *strlwr( char *str ); Переводит все символы в строке str в нижний регистр. Возвращает значение указателя на строку str.
char *strrev( char *str ); Функция меняет порядок следования символов в строке str. Возвращает значение указателя на строку str.
char *strupr( char *str ); Переводит все символы в строке str в верхний регистр. Возвращает значение указателя на строку str.
Функции TURBO C (дополнительно)
#include <string.h> Заголовочный файл для этих функций
char *strerror( int number );
Язык Си. Функции ANSI C
#include <stdio.h> Заголовочный файл для этих функций
int sprintf( char *buffer, char *format_string[, arguments]); Функция форматирует и записывает в строку buffer сформированную строку символов, задаваемой шаблоном-строкой format_string. Обозначение метасимволов в шаблоне аналогично программе printf.
Таблица 7.7. Функции для работы с текстом
Функция/Метод Синтаксис Описание Пример
Perl Функции для работы со скалярами
chomp chomp СПИСОК Удаляет из каждого строкового элемента замыкающий символ завершения записи, определенного значением переменной $/ (по умолчанию - \n). Возвращает общее количество удаленных символов. Список может состоять из одной переменной. При использовании без параметра функция эквивалентна chomp $_ .
chop chop СПИСОК Удаляет из каждого строкового элемента списка последний символ. Возвращаемое значение - удаленный символ из последнего элемента списка. Список может состоять из одной переменной. При использовании без параметров эквивалентно вызову chop $_ .
chr chr ЧИСЛО Возвращает символ по заданному числовому коду таблицы символов. При использовании без параметров эквивалентно вызову chr $_ .
crypt crypt ТЕКСТ, ШИФР Шифрует ТЕКСТ с использованием заданного параметра шифра. Обратной функции дешифровки не существует.
hex hex ВЫРАЖЕНИЕ Интерпретирует строковое ВЫРАЖЕНИЕ как шестнадцатеричное число и вычисляет его десятичный эквивалент. При использовании без параметров вызов аналогичен вызову hex $_ .
index index СТРОКА, ПОДСТРОКА[, ПОЗИЦИЯ] Возвращает позицию первого вхождения указанной подстроки в заданную параметром СТРОКА строку или "-1", если подстрока не найдена. Если задан параметр ПОЗИЦИЯ, то поиск начинается с заданной позиции в строке (нумерация символов в строке начинается с "0").
lc lc ВЫРАЖЕНИЕ, Функция преобразует все прописные буквы строкового параметра ВЫРАЖЕНИЕ в строчные буквы и возвращает полученную строку. В случае применения use local при преобразовании используются текущие локальные установки. При использовании без параметров функция аналогична вызову lc $_ .
lcfirst lcfirst ВЫРАЖЕНИЕ Преобразует первый символ строкового параметра ВЫРАЖЕНИЕ в нижний регистр и возвращает полученную строку. В случае применения use local при преобразовании используются текущие локальные установки. При использовании без параметров вызов функции аналогичен вызову lcfirst $_ .
length length ВЫРАЖЕНИЕ Возвращает количество байтов в строке, являющегося значением параметра ВЫРАЖЕНИЕ. При использовании без параметров функция эквивалентна вызову length $_ .
oct oct ВЫРАЖЕНИЕ Интерпретирует строковое ВЫРАЖЕНИЕ как восьмеричное число и вычисляет его десятичный эквивалент. Если строка начинается с символов 0x, то его содержимое интерпретируется как шестнадцатеричное число. При использовании без параметров вызов функции аналогичен вызову oct $_ .
ord ord ВЫРАЖЕНИЕ Возвращает числовой ASCII код первого символа строки, являющегося значением параметра ВЫРАЖЕНИЕ. При использовании без параметров вызов функции аналогичен вызову ord $_ .
pack pack ШАБЛОН, СПИСОК Упаковывает массив или список значений в двоичную структуру в соответствии с заданным шаблоном, представляющим собой последовательность символов, которые задают порядок и тип значений. Возвращает строку, содержащую полученную структуру.
reverse reverse СПИСОК В списковом контексте возвращает список значений, состоящий из элементов, заданным параметром СПИСОК списка, но в обратном порядке, начиная с последнего символа. В скалярном контексте соединяет все элементы списка в одну строку, состоящую из символов полученной строки, но в обратном порядке.
rindex rindex СТРОКА, ПОДСТРОКА[, ПОЗИЦИЯ] Возвращает позицию последнего вхождения указанной подстроки в заданную параметром СТРОКА строку или "-1", если подстрока не найдена. Если задан параметр ПОЗИЦИЯ, то поиск начинается до заданной позиции в строке (включая символ в этой позиции).
sprintf sprintf ФОРМАТ, СПИСОК Возвращает строку, представляющую собой форматный вывод списка значений, определенного параметром СПИСОК, в соответствии с заданной параметром ФОРМАТ строкой формата. Символы форматирования соответствуют функции форматирования языка Си printf.
substr substr СТРОКА, СМЕЩЕНИЕ[, ДЛИНА[, ЗАМЕЩЕНИЕ]] Находит и возвращает из параметра СТРОКА, подстроку длиной, равной значению параметра ДЛИНА, начиная с символа, заданного параметром СМЕЩЕНИЕ. Если значение СМЕЩЕНИЕ отрицательно, то извлечение начинается с последнего символа строки. Если значение ДЛИНА отрицательно, то от конца строки отсекаются количество символов, равное абсолютному значению этого параметра. Если задан строковый параметр ЗАМЕЩЕНИЕ, то найденная подстрока замещается ею в параметре СТРОКА, который в этом случае должен быть l-Значением.
uc uc ВЫРАЖЕНИЕ, Функция преобразует все строчные буквы строкового параметра ВЫРАЖЕНИЕ в прописные буквы и возвращает полученную строку. В случае применения use local при преобразовании используются текущие локальные установки. При использовании без параметров вызов функции аналогичен вызову uc $_ .
ucfirst ucfirst ВЫРАЖЕНИЕ Преобразует первый символ строкового параметра ВЫРАЖЕНИЕ в верхний регистр и возвращает полученную строку. В случае применения use local при преобразовании используются текущие локальные установки. При использовании без параметров вызов функции аналогичен вызову ucfirst $_ .
Лексикографический порядок (lexicographic ordering) совпадает с с упорядочением по алфавиту, когда строки набраны либо прописными, либо строчными буквами. Если вызываемая строка опережает документ, метод возвращает отрицательное значение, Если две сравниваемые строки равны, метод возвращает нулевое значение. Если аргумент опережает вызывающую строку, метод возвращает положительное значение.
Perl Функции для работы со скалярами (поиск и замена фрагментов)
pos pos СТРОКА pos Возвращает значение указателя позиции в строке после последней выполненной для нее операции поиска по образцу: m//g. Если используется в левой части операции присвоения, то изменяет значение указателя, влияя на \G в регулярном выражении. При использовании без параметров данный вызов эквивалентен вызову: pos $_.
quotemeta quotemeta ВЫРАЖЕНИЕ quotemeta Возвращает строку, в которой перед каждым неалфавитно-цифровым символом поставлена обратная черта. Значение параметра: ВЫРАЖЕНИЕ - интерпретируется как строка. (Внутренняя функция реализации управляющего символа \0 в строках в двойных кавычках). При использовании функции без параметров эквивалентно вызову quotemeta $_.
split split /ОБРАЗЕЦ/[.ВЫРАЖЕНИЕ[.ПРЕДЕЛ]] split Разбивает строку, являющуюся значением параметра: ВЫРАЖЕНИЕ, на массив строк, с использованием разделителя, определяемым регулярным выражением в параметре: ОБРАЗЕЦ. В списковом контексте возвращает полученный массив, в скалярном контексте - количество найденных строк разбиения. Если задан параметр: ПРЕДЕЛ, разбивает на не более чем заданное этим параметром число строк. Если параметр: ВЫРАЖЕНИЕ - не задан, то используется внутренняя специальная переменная интерпретатора Perl $_, Если не задан образец, то разбивает по пробельным символам. При использовании без параметра эквивалентна split /\s+/. $_. Операция split - антагонист операции: join.
study study ВЫРАЖЕНИЕ study Оптимизирует строковые данные параметра: ВЫРАЖЕНИЕ - для дальнейшего использования в повторных операциях поиска по образцу. В цикле с несколькими операциями поиска может сэкономить время выполнения. При использовании без параметров функция эквивалентна: study $_.
Perl Функции для работы с массивами скаляров
delete delete ВЫРАЖЕНИЕ Удаляет из массива скаляров его элемент или фрагмент, заданный параметром: ВЫРАЖЕНИЕ. Если удаляется последний элемент массива, то автоматически изменяется длина массива, если удаляются элементы из его середины, то оставшиеся элементы не сдвигаются (для сдвига используйте функцию splice()), а соответствующий "удаленный" элемент принимает неопределенное значение. В списковом контексте возвращает список удаленных элементов, а в скалярном - их количество. Если удаляемых символов в массиве нет, то возвращает неопределенное значение. Функция delete работает с массивами скаляров только в Perl версий 5.6.0 и выше.
exists exists ВЫРАЖЕНИЕ Проверяет, был ли когда-либо инициализирован в массиве скаляров элемент, заданный параметром: ВЫРАЖЕНИЕБ, например, $array[3], даже если сейчас его значение не определено. Если да, то возвращает значение "истина", иначе - "ложь". Функция exist работает с массивами скаляров только в Perl версий 5.6.0 и выше.
pop pop МАССИВ pop Удаляет из массива скаляров последний элемент и возвращает его значение. Если массив пустой, то возвращает неопределенное значение undef. Если функция вызывается без параметров, то главной программе вызов эквивалентен pop @ARGV, а в подпрограмме pop @_.
push push МАССИВ, СПИСОК Рассматривает массив скаляров, заданный параметром: МАССИВ, как стек и добавляет после его последнего элемента элементы списка, заданные параметром: СПИСОК. Возвращает количество элементов полученного массива.
shift shift МАССИВ shift Удаляет из массива скаляров первый элемент и возвращает его значение. После удаления элементы оставшиеся элементы сдвигаются влево: второй элемент становится первым, третий - вторым и т.д. Если массив пустой, то возвращает неопределенное значение undef. Если функция вызывается без параметров, то главной программе вызов эквивалентен shift @ARGV, а в подпрограмме shift @_.
splice splice МАССИВ, НОМЕР[, КОЛИЧЕСТВО[, СПИСОК]] Удаляет из массива количество элементов, заданное значением параметра: КОЛИЧЕСТВО, начиная с элемента, заданное значением параметра: НОМЕР. В случае задания параметра СПИСОК заменяет указанные в нем элементы списка. В списковом контексте возвращает удаленные элементы; в скалярном контексте - последний удаленный элемент. Если параметр:КОЛИЧЕСТВО не задан, то удаляются все элементы после элемента с номером, определенным значением параметра: НОМЕР.
unshift unshift МАССИВ, СПИСОК Добавляет элементы списка, определенного параметром: СПИСОК, в начало массива, заданного параметром МАССИВ. Выполняет действия, противоположные действиям функции shift.
grep grep БЛОК СПИСОК grep ВЫРАЖЕНИЕ, СПИСОК
join join ВЫРАЖЕНИЕ, СПИСОК Рассматривает все элементы списка, определенного параметром: СПИСОК, как строковые значения, соединяет их в одну строку, вставляя между ними разделитель, равный значению параметра: ВЫРАЖЕНИЕ, и возвращает полученную строку.
map map БЛОК СПИСОК map ВЫРАЖЕНИЕ, СПИСОК
pack pack ВЫРАЖЕНИЕ, СПИСОК
reverse reverse СПИСОК В списковом контексте возвращает список значений элементов, заданный параметром: СПИСОК, в обратном порядке, начиная с последнего элемента. В скалярном контексте соединяет все элементы в одну строку и возвращает строку, в которой символы расположены в обратном порядке, начиная с последнего символа.
sort sort [ПОДПРОГРАММА] СПИСОК sort [БЛОК] СПИСОК Сортирует список значений, заданный в параметре: СПИСОК. Если параметры БЛОК и ПОДПРОГРАММА не заданы, то используется стандартная процедура сравнения строковых данных. Если они заданы, то операторы блока или подпрограммы используются в качестве процедуры сравнения при сортировке элементов списка. В этом случае в теле блока или подпрограммы в последнем операторе следует использовать операцию <=> или cmp в зависимости от сортировки соответственно числовых и строковых данных. Возвращает список, элементами которого являются отсортированные элементы исходного списка.
unpack unpack ШАБЛОН, ВЫРАЖЕНИЕ
< Лекция 6 || Лекция 7: 1234 || Лекция 8 >