2010-12-01 11 views
4

C++でstrcmp(x、y)を使用しました。あなたはas3でそれをする方法を知っていますか?Actionscript 3の2つの文字列をアルファベット順に比較する方法

ありがとうございます!

+0

達成したいことは何ですか?何が結果?私はC++のstrcmp関数に慣れていません。 – Mattias

+0

文字列a == bの場合は0を返す関数が必要です。 a> b(アルファベット順)の場合は1を返します。 a Loop

答えて

6

あなたは、通常のオペランドを使用することができます!=!== == <> < = =>

+0

アルファベット順の比較もありますか? – Loop

+0

はいアルファベットも同様です。 a == b、a> b、a

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

それは単純な文字列だ場合、あなたが後にしているの比較、1を自分で書く気にしないでください。

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

これは、あなたが探しているものを実現します。あなたは、メソッドlocaleCompareを使用する必要があります比較する完全なUnicode文字列の場合

+2

ただし、Flexでのみ動作します... – PatrickS

3

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

異なる文字が最初の1かいずれかである場合には(関係なく最初の二つの異なる文字間のアルファベットの違いを返します。その他)、または文字列が同一の場合はゼロ。 "a"がアルファベットの最初に来れば数字は負で、最初の数字が "b"ならば正です。

だから、あなたがチェックする必要があります:

compare < 0( "" 最初に来る)

compare == 0(同じ文字列を)

compare > 0( "b" は最初に来る)

また、localeCompareは大文字と小文字が完全にdであるとみなすので、aとbの両方があらかじめ小文字であることを確認するか(大文字でも大文字でも問題ありませんが、両方とも同じケースにする必要があります)それ以外のアルファベット(これは、このメソッドがUnicode文字テーブル比較を実行するためです。大文字アルファベットが最初に来ます)。

関連する問題