演算子とストリングの使用について

2 つのデータ型が異なる場合、比較演算子は 1 つのオペランドをもう一方のデータ型に変換します。1 つのオペランドがストリングでもう一方が数値の場合、ストリングオペランドが数値に変換され、それらの数値比較が実行されます。このルールの例外として厳密な等価 (===) 演算子があります。厳密な等価演算子の動作は、データ型が変換されない以外は等価 (==) 演算子と同じです。両方の式が、そのデータ型も含めて等しい場合、結果は true です。数値演算子の詳細については、数値演算子の使用を参照してください。

等価演算子 (==) と比較演算子 (> >=<、および <=) によるストリングへの影響は、独自の値を操作するときは異なります。

比較演算子は、ストリングを比較してアルファベット順に最初のストリングを判断します。大文字のストリングは、小文字のストリングに優先されます。つまり、"Egg" が "chiken" よりも先になります。

var c:String = "chicken";
var e:String = "Egg";
trace(c < e); // false
var riddleArr:Array = new Array(c, e);
trace(riddleArr); // chicken,Egg
trace(riddleArr.sort()); // Egg,chicken

この ActionScript では、Array クラスの sort() メソッドが、配列の内容の順序をアルファベット順に再変更します。値 "Egg" が値 "chicken" よりも先になるのは、大文字の E が小文字の c よりも先になるためです。大文字と小文字とは無関係にストリングを比較する場合は、ストリングを比較する前に大文字または小文字に変換する必要があります。比較演算子の詳細については、等価演算子についておよび関係演算子および等価演算子の使用参照してください。

toLowerCase() または toUpperCase() メソッドを使用して、ストリングを比較する前に同じ大文字または小文字に変換することができます。次の例では、両方のストリングが小文字に変換されて比較されます。この結果、chiken が egg よりも先になります。

var c:String = "chicken";
var e:String = "Egg";
trace(c.toLowerCase() < e.toLowerCase()); // true

メモ

 

比較演算子では、2 つのストリングのみが比較されます。たとえば、1 つのオペランドが数値である場合、演算子は値を比較しません。オペランドのどちらか一方だけがストリングである場合、両方のオペランドが数値に変換され、数値として比較されます。

演算子を使用してストリングを操作できます。加算 (+) 演算子を使用して、2 つのストリングオペランドを連結することができます。trace ステートメントを書いたときに、加算演算子を使用してストリングを連結しました。たとえば、次のように入力するとします。

var myNum:Number = 10;
trace("The variable is " +  myNum + ".");

このコードは、[出力] パネルに次のような情報を出力します。

The variable is 10.

この例では、trace ステートメントは + 演算子を使用して加算ではなく連結を行います。Flash でストリングと数値を扱う場合、数値として加算するのではなく、連結される場合があります。

たとえば、異なる変数の 2 つのストリングを 1 つのテキストフィールドに連結するとします。次の ActionScript コードでは、変数 myNum がストリングと連結し、ステージ上の [myTxt] テキストフィールドにストリングが表示されます。

this.createTextField("myTxt", 11, 0, 0, 100, 20);
myTxt.autoSize = "left";
var myNum:Number = 10;
myTxt.text = "One carrot. " + myNum + " large eggplants.";
myTxt.text += " Lots of vegetable broth.";

このコードは、次の情報をインスタンス名 myTxt と共にテキストフィールドに出力します。

One carrot. 10 large eggplants. Lots of vegetable broth.

この例では、加算 (+) 演算子および加算代入 (+=) 演算子を使用してストリングを連結する方法を示します。3 行目のコードでは、加算演算子を使用して myNum 変数の値をテキストフィールドに連結し、4 行目のコードでは加算代入演算子を使用して、テキストフィールドの既存の値にストリングを連結します。

テキストストリングのオペランドの 1 つのみが実際にストリングである場合、Flash は他のオペランドをストリングに変換します。そのため、値 myNum は前述の例のストリングに変換されます。

メモ

 

ストリングの先頭、または末尾に入力されたスペースは、ストリングのリテラル部分として扱われます。


 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート

現在のページ: http://livedocs.adobe.com/flash/9.0_jp/main/00000727.html