Функции для работы со строками.

Существует несколько простых функций, таких как lc и uc, которые возвращают строку соответственно в нижнем и в верхнем регистре. Еще есть функция length, возвращающая количество символов в данной строке.

Взгляните на пример:

1. use strict;

2. use warnings;

3. use 5.010;

4.

5. my $str = 'HeLlo';

6.

7. say lc $str; # hello

8. say uc $str; # HELLO

9. say length $str; # 5

index

Еще одна функция - index. Она принимает две строки и возвращает положение второй строки внутри первой.

1. use strict;

2. use warnings;

3. use 5.010;

4.

5. my $str = "The black cat jumped from the green tree";

6.

7. say index $str, 'cat'; # 10

8. say index $str, 'dog'; # -1

9. say index $str, "The"; # 0

10. say index $str, "the"; # 26

Первый вызов index вернул 10, потому что строка "cat" начинается на 10 символе. Второй вызов index вернул -1, указывая на то, что в этом предложении нет "dog".

Третий вызов показывает, что index возвращает 0, когда вторая строка стоит в начале первой.

Четвертый пример показывает, что index ищет точное совпадение, так что регистр влияет на ее работу. Поэтому "the" и "The" - не одно и то же.

index() ищет строки, а не слова, так что строку "e " тоже можно найти:

1. say index $str, "e "; # 2

index() также может принимать третий параметр, указывающий на место, откуда начать поиск. Так что, раз мы нашли "e " сначала на 2-м символе первой строки, можно попытаться поискать, начиная с 3-его, чтобы узнать, не встречается ли в этой строке еще "e ":

1. say index $str, "e "; # 2

2. say index $str, "e ", 3; # 28

3. say index $str, "e", 3; # 18

Поиск "e" без пробела даст другой результат.

Наконец, существует еще одна функция под названием rindex (right index, правый индекс), которая начинает поиск с правого конца строки:

1. say rindex $str, "e"; # 39

2. say rindex $str, "e", 38; # 38

3. say rindex $str, "e", 37; # 33

substr

Наверное, самая интересная функция в этой статье это substr. Это, по сути, противоположность index(). Если index() говорит нам, где расположена данная строка, substr возвращает подстроку, расположенную в данном месте. Как правило, substr принимает 3 параметра. Первый - это строка. Второй - это положение (начиная с нуля), также называемое смещение, и третий - длинастроки, которую мы хотим получить.

1. use strict;

2. use warnings;

3. use 5.010;

4.

5. my $str = "The black cat climbed the green tree";

6.

7. say substr $str, 4, 5; # black

substr начинает отсчет с нуля, так что символ со смещением 4 это буква b.

1. say substr $str, 4, -11; # black cat climbed the

Третий параметр (длина) может быть и отрицательным числом. В этом случае он определяет количество символов с правого конца строки, которые НЕ будут включены. Таким образом, предыдущий код значит: отсчитать 4 символа от начала, 11 от конца, и вернуть то, что между ними.

1. say substr $str, 14; # climbed the green tree

Также можно опустить 3-й параметр (длину), что будет значить: вернуть все символы начиная от 14 и до конца строки.

1. say substr $str, -4; # tree

2. say substr $str, -4, 2; # tr

Мы можем использовать отрицательное число в качестве смещения, что будет значить: отсчитать 4 символа с конца и начать оттуда. То есть то же самое, что установить смещение length($str)-4.

Замена части строки.

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

Возвращаемое значение substr() всегда определяется первыми тремя параметрами, но в данном случае мы передаем еще и четвертый. Это строка, которая заменит подстроку в исходной строке.

1. my $z = substr $str, 14, 7, "jumped from";

2. say $z; # climbed

3. say $str; # The black cat jumped from the green tree

Итак, substr $str, 14, 7, "jumped from" возвращает слово climbed, но, поскольку мы передали четвертый параметр, исходная строка была изменена.


 








Дата добавления: 2016-04-23; просмотров: 449;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.005 сек.