Опубликован: 23.12.2005 | Уровень: специалист | Доступ: платный | ВУЗ: Московский физико-технический институт
Лекция 4:

Контейнеры

Строки

Работа со строками - одна из наиболее часто встречающихся задач при написании любой программы. Мы уже говорили, что регулярных выражений во Флэше нет - он не ориентирован на работу с текстами значительного размера. Однако действия с обычными строками производить достаточно удобно.

Создание строк (кавычки и new)

Мы уже создавали строки в примерах, встречавшихся ранее, а теперь давайте упорядочим наши знания. Итак, во Флэше можно создать строку двух разных видов: объектного и примитивного. Вообще-то если строкой пользоваться по назначению, то разницу между этими двумя типами заметить нельзя. Хотя, как мы далее узнаем, есть (недокументированные) возможности расширить функциональность объектных типов своими руками. Тогда разница проявится. Как мы уже говорили, разница эта состоит в том, что объект примитивного типа ведет себя как объект read-only (только для чтения). Изменить его, добавить в него поля и пр. мы не можем.

Во Флэше есть несколько способов создать примитивную строку. Первый и самый распространенный - при помощи двойных или одинарных кавычек. Два типа кавычек используется на случай, если вам нужно вставить кавычки внутри строки. То есть в качестве ограничителя строки вы используете один (любой) тип кавычек, а внутри самой строки - другой. (Ту же задачу можно решить, используя подходящую escape-последовательность из приведенной ниже таблицы).

Еще один способ обзавестись примитивной строкой - получить ее в результате выполнения какого-либо метода, возвращающего строки. Все такие методы возвращают именно примитивные строки.

Таблица 4.1.
Escape-последовательность Символ
\b Backspace ("забой") (ASCII 8)
\f Form-feed (знак смещения бланка) (ASCII 12)
\n Line-feed (перевод строки) (ASCII 10)
\r Carriage return (возврат каретки) (ASCII 13)
\t Символ табуляции (ASCII 9)
\" Двойная кавычка
\' Одинарная кавычка
\\ Обратный слэш
\000 - \377 Символ в восьмеричном коде
\x00 - \xFF Символ в шестнадцатеричном коде
\u0000 - \uFFFF 16-битовый символ Unicode (в шестнадцатеричном коде)

Последний способ получить примитивную строку - это сделать ее из любого выражения функцией String, служащей для преобразования в строковый тип. Работает эта функция достаточно очевидным образом. Для чисел возвращает соответствующую строчку с десятичной записью числа (возможно, с плавающей точкой). Для булевых выражений выдает " true " или " false ". В случае undefined возвращает пустую строку. Наконец, в случае объектного типа вызывает метод toString. По этим же правилам производится преобразование в строчку и тогда, когда оно совершается неявно (например, при передаче аргумента строкового типа или в случае прибавления какого-либо выражения к строке ).

А вот конструкция new String(выражение) создает строку объектную, а не примитивную. Выражение, которое передается в скобках, в случае надобности конвертируется в строку по правилам, указанным в предыдущем абзаце.

Изредка возникает проблема: нужно написать очень длинную строку, которая не помещается на экран. Перенос на следующую строчку можно осуществить, закрыв кавычки и поставив знак +. А можно - поставив обратный слэш, как в С++. Правда, имеется проблема с использованием последнего способа: слэши остаются в строке (видимо, это просто баг редактора). Но вычистить их оттуда довольно легко (если у вас в строке не будет других обратных слэшей). Так что иногда (при копировании длинного текста из внешних источников) бывает удобнее расставить в конце строк обратные слэши, а уж потом их удалить (например, способом, подробно описанным в конце этого параграфа - заменой подстроки "\" на пустую).

алексеи федорович
алексеи федорович
Беларусь, рогачёв
Тамара Ионова
Тамара Ионова
Россия, Нижний Новгород, НГПУ, 2009