2010-12-01 10 views

Répondre

6

Vous pouvez utiliser les opérandes normaux! =! == == <> < = =>

+0

Comparer par ordre alphabétique aussi? – Loop

+0

Oui aussi par ordre alphabétique. Vous pouvez vérifier si a == b, a> b et a

0

Vous devrez implémenter la fonction vous-même. Ceci est juste un exemple, il serait bien sûr prendre un peu plus de travail que ce ...

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; 
} 
8

Si c'est une chaîne simple que vous comparez êtes après, ne prenez pas la peine d'écrire vous-même.

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

Cela répond à vos attentes.

+2

Ne fonctionne qu'avec Flex si ... – PatrickS

3

Pour les chaînes Unicode complet comparant vous devez utiliser la méthode localeCompare:

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

Il retournera la différence alphabétique entre les deux premières lettres différentes (peu importe si la lettre différente est la première ou tout autre) ou zéro si les chaînes sont identiques. Le nombre sera négatif si "a" vient en premier dans l'alphabet, ou positif si c'est "b" le premier.

donc vous devez vérifier:

compare < 0 ("a" vient en premier)

compare == 0 (chaînes identiques)

compare > 0 ("b" vient en premier)

Vous devez également vous assurer que a et b sont minuscules au préalable (ou les deux majuscules, cela n'a pas d'importance, mais les deux doivent être dans le même cas), car localeCompare considère que les majuscules et les minuscules sont complètement d alphabets ifferent (parce que cette méthode effectue une comparaison de table de caractères Unicode; l'alphabet majuscule vient en premier).