文字列の操作

今までの演算は数値だけの処理でした。文字列の計算も存在します。文字列の場合には、演算子はひとつしかなく連結するだけです。文字列の検索、分割などは関数を使用します。これらの関数はメンバ関数となっているので文字列の後に . (ドット) をつけて関数を呼び出すようになっています。

文字列演算子

文字の連結は、数値の足し算と同じで + を使います。

var str = "AAA" + "BBB";
trace( str );
str = str + str;
trace( str );

-- 実行結果
AAABBB
AAABBBAAABBB

また、文字列と数値を合わせて演算することができます。この場合、数値が文字列として処理されます。

var str = "AAA" +12;
trace( str );
str = "12" + 12;
trace( str );

-- 実行結果
AAA12
1212

文字列を数値として計算する場合には、Number関数で変換して使用します。Number関数は数値として評価できない場合は、NaN(非数、数値ではない)になります。そこで、解析できる部分までを評価する場合には、parseInt関数を使用します。この関数は数値見なせる部分までを数値として返してくれます。最初が数値でない場合は、NaNとなります。

var str = Number( "12AAA" ) + 5;
trace( str );
str = Number( "12" ) + 4;
trace( str );
var str = parseInt( "12AAA" ) + 3;
trace( str );
var str = parseInt( "AAA12" ) + 2;
trace( str );

-- 実行結果
NaN
16
15
NaN

文字列の抜き出し

文字列の指定した範囲だけを取り出すことができます。抜き出すには、substring() 関数または substr() 関数を使います。書き方は下のようになります。

substring( index, to )
index : 抜き出す文字列の開始位置を指定します。0から始まります。
to : 抜き出す文字列の終了位置を指定します。この引数を省略すると、開始位置以降のすべての文字列を抜き出します。

substr( index, length )
index : 抜き出す文字列の開始位置を指定します。0から始まります。
length : 抜き出す文字列の長さを指定します。この引数を省略すると、開始位置以降のすべての文字列を抜き出します。

それぞれの関数の戻り値には、抜き出した文字列が返されます。

var str = "Windows 98";
var win = str.substring( 0, 3 );
trace( win );
trace( str.substr( 4, 2 ) );

-- 実行結果
Win
ow

1文字だけを取得したい場合には、charAt()関数を使います。

charAt( index )
index : 抜き出す文字の位置を指定します。0から始まります。

var str = "Windows 98";
trace( str.charAt( 0 ) );
trace( str.charAt( 3 ) );

-- 実行結果
W
d

文字列の長さ

文字列の長さを取得するには、文字列オブジェクトの length プロパティを調べます。関数の呼び出しと同じように ,(ドット)をつけて指定します。

var str = "Windows 98";
trace( str.length );
str = "Mac";
trace( str.length );

-- 実行結果
10
3

文字列の検索

検索とは、文字列の中に指定しか文字列が存在するかどうか調べることです。検索するには、indexOf()関数または、lastIndexOf() 関数を使います。両者の違いは、前者は 文字列の先頭から検索し、後者は文字列の最後から検索し、最初に見つかった文字列の位置を返します。見つからなかった場合には、-1を返します。

indexOf( str )
str : 検索する文字列を指定します。

lastIndexOf( str )
str : 検索する文字列を指定します。

下の例では、文字列を検索して見つかった位置を表示します。

var str = "Windows Mac Macintosh Windows NT";
trace( str.indexOf( "Windows" ) );
trace( str.lastIndexOf( "Mac" ) );
trace( str.lastIndexOf( "Windows" ) );

-- 実行結果
0
12
22

そのほかの文字列の処理

文字列は、抜き出しや連結以外に以下のようなメンバ関数を持っています。

charCodeAt( index )
説明 : 指定した位置の文字のコードを返します。
index : コードを取得したい文字列の位置を指定します。0から始まります。
戻り値 : 文字コード
例 :
trace( "A".charCodeAt( 0 ) );

--実行結果
65

concat( str, str2, ... strN )
説明 : 引数で受け取った文字列と元の文字列をすべて連結した文字列返します。
str, str2, ... strN : 連結したい文字列を指定します。いくつでも指定することができます。
戻り値 : 連結された文字列
例 :
var a = "ABC".concat( "DEF", "GHI" );
trace( a );

--実行結果
ABCDEFGHI

fromCharCode(c, c2, ... cN)
説明 : 引数で受け取った文字コードから文字を作成しすべて連結した文字列返します。
c, c2, ... cN : 連結したい文字のコードを指定します。いくつでも指定することができます。
戻り値 : 連結された文字列
例 :
var a = String.fromCharCode( 65, 66 );
trace( a );

--実行結果
AB

slice(start, end)
説明 : 指定した範囲内に含まれる文字列を返します。substring()関数と違い、範囲内に含まれている文字列だけが抜き出されます。
start : 抜き出す文字列の開始位置を指定します。-1を指定した場合は、文字列の最初を指定したことになります。
end : 抜き出す文字列の終了位置を指定します。-1を指定した場合には文字列の最後までを指定したことになります。
戻り値 : 指定した範囲内に含まれる文字列


var a = "Windows".slice( 2, 4 );
trace( a );

--実行結果
nd

split(delimiter)
説明 : 区切り文字で文字列を分割し、文字列のリストを返します。リストについては後の章で説明します。
delimiter : 文字列を分割する区切り文字を指定します。1文字しか指定できません。
戻り値 : 分割された文字列のリスト
例 :
var str = "ABC|DEF|GHI";
var list = str.split( "|" );
trace( list[ 0 ] );
trace( list[ 1 ] );
trace( list[ 2 ] );

--実行結果
ABC
DEF
GHI

toLowerCase()
説明 : 文字列内の大文字をすべて小文字に変換します。
引数 : なし
戻り値 : 小文字に変換された文字列
例 :
var str = "Windows";
trace( str.toLowerCase() );

--実行結果
windows

toUpperCase()
説明 : 文字列内の小文字をすべて大文字に変換します。
引数 : なし
戻り値 : 大文字に変換された文字列
例 :
var str = "Windows";
trace( str.toUpperCase() );

--実行結果
WINDOWS


TOP > Flash > ActionScript > 文字列の操作