J'ai utilisé strcmp (x, y) en C++. Savez-vous comment faire cela en as3?Comment comparer par ordre alphabétique deux chaînes dans Actionscript 3
Merci!
J'ai utilisé strcmp (x, y) en C++. Savez-vous comment faire cela en as3?Comment comparer par ordre alphabétique deux chaînes dans Actionscript 3
Merci!
Vous pouvez utiliser les opérandes normaux! =! == == <> < = =>
Comparer par ordre alphabétique aussi? – Loop
Oui aussi par ordre alphabétique. Vous pouvez vérifier si a == b, a> b et a
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;
}
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.
Ne fonctionne qu'avec Flex si ... – PatrickS
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).
Que voulez-vous accomplir? Quel résultat? Je ne suis pas familier avec la fonction strcmp en C++. – Mattias
Je veux une fonction qui retourne 0 si la chaîne a == b; renvoie 1 si a> b (alphabétiquement); renvoie -1 si a Loop