如何按字母顺序比较Actionscript 3中的两个字符串

时间:2010-12-01 11:00:28

标签: flash actionscript-3

我在C ++中使用了strcmp(x,y)。你知道如何在as3中做到这一点吗?

谢谢!

4 个答案:

答案 0 :(得分:8)

如果这是一个简单的字符串比较,那么就不要自己写一个。

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

这实现了你正在寻找的东西。

答案 1 :(得分:7)

您可以使用普通的操作数!=!== ==< > < = =>

答案 2 :(得分:4)

对于完整的Unicode字符串比较,您应该使用方法localeCompare:

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

它将返回前两个不同字母之间的字母差异(无论字母是否为第一个或任何其他字母),如果字符串相同则返回零。如果“a”在字母表中排在第一位,则该数字将为负数;如果在第一个字母中为“b”,则该数字为正数。

所以你必须检查:

compare < 0(“a”首先出现)

compare == 0(相同的字符串)

compare > 0(“b”优先)

你还应该确保a和b都是事先小写的(或者都是大写的,没关系,但两者都应该是相同的情况),因为localeCompare认为大写和小写是完全不同的字母(这是因为此方法执行Unicode字符表比较;首先是大写字母表。)

答案 3 :(得分:0)

你必须自己实现这个功能。这只是一个例子,它当然需要比这更多的工作......

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