indexOf() AS3, lastIndexOf(), charAt() — методы для поиска букв или частей текста внутри строк

На этом уроке мы рассмотрим два вопроса:

  1. indexOf() AS3, lastIndexOf(), charAt() — методы для поиска букв или частей текста внутри строк.
  2. Дополнительная информация

Любой кусок текста в ActionScript 3.0 является экземпляром класса String. Этот класс содержит методы для управления текстом.

Существует несколько очень полезных методов для поиска букв или конкретных частей текста внутри строк (String). Если Вы хотите вернуть определенный символ (букву, цифру и пр.), находящийся в определенном месте строки (String), то нужно использовать метод charAt(). Например:

var bookTitle:String = "Основы ActionScript 3.0";
trace(bookTitle.charAt(2));

Метод trace вернет букву " н ". Помните, что в программировании отсчет (индексирование) начинается с 0 (ноль), а не с 1 (едиинцы). Поэтому индекс буквы " н " будет 2.

Чтобы найти местоположение конкретного символа, находящегося в строке (String) нужно использовать метод indexOf() AS3. Если использовать в качестве примера вышеприведенный код

bookTitle.indexOf("о");

то Вы получите 0, после того как будет найдена первая буква " о " в строке. Заметьте, что метод indexOf() начинает отсчет также с 0, как и charAt(). Фактически Вы получаете длину строки до искомого символа, т.е. количество символов предшествующих тому знаку, который Вы ищите. Знать это в некоторых ситуациях будет полезно.

Существует еще один метод lastIndexOf(). Этод метод в некотором смысле выполняет задачу противоположную indexOf(). Он начинает поиск назначенного символа с конца строки.

Поиск символов внутри строк

Создайте текстовое поле, например

var txtField:TextField = new TextField();

Используйте свойство autoSize для автоматического определения размера поля и параметра LEFT для выравнивания строки по левому краю

txtField.autoSize = TextFieldAutoSize.LEFT;

Задайте местоположение текста

txtField.x = 150;
txtField.y = 150;

Добавьте экземпляр на сцену

addChild(txtField);

Декларируйте строковую переменную, например

var myPhoto:String = "photo1.jpeg";

Найдите нужный Вам символ в строке

var dotPosition:Number = myPhoto.indexOf(".");

Теперь используйте найденное значение, например

txtField.text = "Длина имени файла " + dotPosition + " символов.";

Нажмите Ctrl + Enter. Запуститься Flash Player.

Вы увидите информацию о длине имени файла.

indexOf() AS3, lastIndexOf(), charAt()

Дополнительная информация

Если метод indexOf() AS3 не находит искомый символ, то он возвращает -1 (минус один). Это можно использовать с большой пользой, например, при валидации адресов электронной почты.

var email:String = "uroki-flash-as3.ru";
var validateEmail:Number = email.indexOf("@");
if (validateEmail != -1)
{
   trace("Электронный адрес корректный");
} else {
   trace("Электронный адрес неправильный");
}

Условный оператор if мы рассмотрим в последующих уроках.