Как сравнить две строки в Actionscript 3 по алфавиту - PullRequest
4 голосов
/ 01 декабря 2010

Я использовал strcmp (x, y) в C ++. Вы знаете, как это сделать в as3?

Спасибо!

Ответы [ 4 ]

8 голосов
/ 01 декабря 2010

Если вам нужна простая строка сравнения, не пишите ее самостоятельно.

var result:int = ObjectUtil.compare("stringA","stringB");

Это достигает того, что вы ищете.

7 голосов
/ 01 декабря 2010

Вы можете использовать обычные операнды! =! == == <> <= =>

4 голосов
/ 03 января 2012

Для полного сравнения строк в Юникоде вы должны использовать метод localeCompare:

var compare:int = a.localeCompare(b);

Возвращает алфавитную разницу между первыми двумя разными буквами (независимо от того, является ли другая буквапервый или любой другой) или ноль, если строки идентичны.Число будет отрицательным, если «а» стоит первым в алфавите, или положительным, если это «b» первым.

Так что вам придется проверить:

compare < 0(«a» стоит первым)

compare == 0 (идентичные строки)

compare > 0 («b» идет первым)

Вы также должны убедиться, что a иb заранее прописными буквами (или прописными буквами, это не имеет значения, но оба должны быть в одном и том же регистре), поскольку localeCompare считает прописные и строчные буквы совершенно разными алфавитами (это потому, что этот метод выполняет сравнение таблицы символов Юникода;Алфавит на первом месте).

0 голосов
/ 01 декабря 2010

Вы должны реализовать эту функцию самостоятельно. Это всего лишь пример, конечно, потребовалось бы немного больше работы, чем этот ...

 private function strComp( string1:String , string2:String ):int
 {
    var counter:int; 

    for( var i:int ; i < string1.length ; ++i )
    {
          if( string1.getCharAt(i) == string2.getCharAt(i) )
             //increment counter
          else
            break;

    }

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