Как я могу добиться быстрого и эффективного сжатия строк в Actionscript 3? - PullRequest
1 голос
/ 02 декабря 2011

У меня есть объект, в котором хранятся пары для поиска и замены, которые я выполняю для до 1500 строк одновременно.

Объект заполняется парами с использованием метода, который принимает строку, а затем сохраняетэто свойство со значением, являющимся автоматически назначаемым базовым номером 36, например:

function addShort(long:String):void
{
    _pairs[long] = _nextShort;
}

_nextShort возвращает автоматически увеличенное значение, являющееся предметом .toString(36), поэтому выполните приведенное выше несколько раз_pairs может выглядеть так:

_pairs:Object = {
    "class": "0",
    "testing.objects.TestBlock": "1",
    "skin.x": "2",
    "skin.y": "3",
    ...........
    "someString": "az1"
};

Этот объект может оказаться очень большим, если в нем будет храниться более пары сотен пар.

У меня тогда будет метод, который будет принимать"длинная" строка (которая будет включать строки, которые я передал addShort() ранее) и возвращать новую строку, где они были заменены соответствующими короткими значениями.

Метод выглядит следующим образом:

public function shorten(long:String):String
{
    for(var i:String in _pairs)
        long = long.split(i).join(_pairs[i]);

    return long;
}

Очень просто, однако, на мой взгляд, я предвижу серьезную проблему в случае, когда мне может понадобиться «сократить» строки 2000+ и_pairs В то же время объект имеет более 500 пар.

В итоге получается 1 000 000 итераций, что, очевидно, не очень эффективно.

Как я могу улучшить это?процесс значительно?

Ответы [ 2 ]

1 голос
/ 02 декабря 2011

Основываясь на комментариях @kapep, я понял, что на самом деле мне нужна библиотека сжатия, которая сделает эту работу за меня.

Я наткнулся на класс сжатия LZW в пакете Calista , который отлично работает.

Я заметил, что сжатие было действительно медленным, что понятно, но если есть какие-то предложения для чего-то более быстрого, я открыт для них.

0 голосов
/ 02 декабря 2011

Как насчет регулярных выражений для замены строковых шаблонов? Поймай код .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...