Flash CS3 ドキュメンテーション |
|||
| ActionScript 2.0 の学習 > テキストとストリングの操作 > ストリングおよび String クラスについて > ストリング内の文字の分析と比較 | |||
ストリング内のすべての文字が、ストリング内のインデックス位置を持っています (整数)。最初の文字のインデックス位置は 0 です。たとえば、ストリング yellow 内の文字 y の位置は 0、文字 w の位置は 5 になります。
すべてのストリングには length プロパティがあります。これは、ストリング内の文字数と同じ値になります。
var companyStr:String = "adobe";
trace(companyStr.length); // 10
空のストリングと null ストリングはどちらも length がゼロです。
var firstStr:String = new String(); trace(firstStr.length);// 0 var secondStr:String = ""; trace(secondStr.length);// 0
ストリングに値が含まれていない場合、length は undefined に設定されます。
var thirdStr:String; trace(thirdStr.length); // undefined
|
警告 |
|
ストリングに null バイト文字 (\0) が含まれている場合、ストリングの値はそこで切り詰められます。 |
文字コードを使用してストリングを定義することもできます。文字コードおよび文字エンコーディングの詳細については、ストリングおよび String クラスについてを参照してください。
次の例では、myStr という名前の変数を作成し、String.fromCharCode() メソッドに渡された ASCII 値に基づいてストリングの値を設定します。
var myStr:String = String.fromCharCode(104,101,108,108,111,32,119,111,114,108,100,33); trace(myStr); // hello world!
上記のコードの fromCharCode() メソッドにリストされている各数字はそれぞれ 1 つの文字を表しています。たとえば、ASCII 値 104 は小文字の h を、ASCII 値 32 は空白文字を表します。
また、Unicode 値は 16 進数値から 10 進数値に変換する必要がありますが、次の ActionScript に示されているように、String.fromCharCode() メソッドを使用して変換することもできます。
// Unicode 0068 == "h" var letter:Number = Number(new Number(0x0068).toString(10)); trace(String.fromCharCode(letter)); // h
次の例のように、ストリング内のさまざまな位置にある文字を調べることができます。
var myStr:String = "hello world!";
for (var i:Number = 0; i < myStr.length; i++) {
trace(myStr.charAt(i));
}
var myStr:String = "hello world!";
for (var i:Number = 0; i < myStr.length; i++) {
trace(myStr.charAt(i) + " - ASCII=" + myStr.charCodeAt(i));
}
このコードを実行すると、次のように [出力] パネルに表示されます。
h - ASCII=104 e - ASCII=101 l - ASCII=108 l - ASCII=108 o - ASCII=111 - ASCII=32 w - ASCII=119 o - ASCII=111 r - ASCII=114 l - ASCII=108 d - ASCII=100 ! - ASCII=33
|
ヒント |
|
また、String.split() メソッドを使用し、区切り文字として |
演算子を使用してストリングを比較できます。ストリングでの演算子の使用の詳細については、演算子とストリングの使用についてを参照してください。
条件ステートメントでは、if や while などの演算子を使用できます。次の例では、演算子とストリングを使用して比較を行います。
var str1:String = "Apple";
var str2:String = "apple";
if (str1 < str2) {
trace("Uppercase letters sort first.");
}
次の例に示されているように、等価演算子 (==) と不等価演算子 (!=) を使用して、ストリングと他のタイプのオブジェクトを比較できます。
var myStr:String = "4";
var total:Number = 4;
if (myStr == total) {
trace("Types are converted.");
}
ストリングと数字など、異なる 2 つのデータ型を比較する場合、Flash では比較できるようデータ型の変換を試みます。
厳密な等価演算子 (===) と厳密な不等価演算子 (!==) を使用して、両方の比較オブジェクトが同じタイプかどうかを検査できます。次の例では、厳密な比較演算子を使用して、値の比較の際に Flash によってデータ型の変換が試みられていないことを確認します。
var str1:String = "4";
var str2:String = "5";
var total:Number = 4;
if (str1 !== total) {
trace("Types are not converted.");
}
if (str1 !== str2) {
trace("Same type, but the strings don't match.");
}
ストリングへの演算子の使用の詳細については、演算子とストリングの使用についてを参照してください。
選択されたストリングとサブストリングを比較および取得する簡単なワードプロセッサを作成する方法を示す、サンプルのソースファイル "strings.fla" については、Flash サンプルページ (www.adobe.com/go/learn_fl_samples_jp) を参照してください。"Samples" zip ファイルをダウンロードし解凍して、"ActionScript2.0/Strings" フォルダに移動してサンプルにアクセスします。
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート
現在のページ: http://livedocs.adobe.com/flash/9.0_jp/main/00000949.html