Macromedia Flash非公式テクニカルノート

ストリングの一部を取出す(String.substring)

ID: FN0207001 Product: Flash

Platform: All
Version: 5.0 and above

1. String.substringメソッド
ストリング(文字列)の一部を取出すには、Stringオブジェクトのメソッドを使います。代表的なメソッドが、'String.substring'です。「ActionScript辞書」には、つぎのように説明されています。


シンタックス
myString.substring(from, to)

パラメータ
from   myString内で作成するサブストリングの開始位置を示す整数。fromの有効値は、0〜string.length - 1です。fromが負の値である場合は、0が使用されます。

to   myString内で取り出す最後の文字のインデックスに 1 を加えた整数。toの有効値は、1〜string.lengthです。toパラメータで指定されたインデックス位置の文字は、取り出されるストリングには含まれません。このパラメータを省略すると、string.lengthが使用されます。このパラメータが負の値である場合は、0が使用されます。

戻り値
なし。

説明
メソッド; fromパラメータとtoパラメータで指定された点の間の文字をストリングとして返します。toパラメータを指定しないと、サブストリングの終わりはストリングの終わりです。fromがtoに等しい場合、空白ストリングが返されます。fromの値がtoの値を超えると、2つのパラメータは入れ替えられて関数が実行されます。元の値は変更されません。


このメソッドは、ストリングから指定した範囲の文字を取出して「返します」。したがって、「戻り値」は「取出した新しい文字列」です。これを「サブストリング」と呼びます。

サブストリングの開始位置(from)を指定する整数は、0からスタートします。最終位置(to)の文字は、「取り出されるストリングには含まれません」。'String.substring'メソッドは、たとえば以下のように使用します。

sString = "FumioNonaka.com";
sFirstName = sString.substring(0, 5);
trace(sFirstName);
// 「出力」ウィンドウの表示
Fumio

2. 位置を指定する整数の考え方
開始位置を指定する整数が0から始まるのはよいとして、終了位置の文字が含まれないというのは、わかりにくいと思われます。終了位置は、必要な最後の文字より1大きい整数で指定しなければならないということだからです。

このように仕様を定めるメリットとしては、「終了位置(to) - 開始位置(from)」の引き算でサブストリングの文字数('String.length'プロパティを参照)を得られる点が挙げられます。もっとも、文字数の計算が早いからといって、終了値の指定にいちいち1を足し込んでおかなければならないというのも、納得しにくいでしょう。

本稿でお勧めしたい考え方は、文字の間に仕切りを想定することです。たとえば、"FumioNonaka"の各文字の間に、仕切りとして"|"を挿入してみます。

|F|u|m|i|o|N|o|n|a|k|a|

そして、その仕切に対して、0から始まるインデックス番号をつけるのです(2桁にすると見にくいので、9の後はまた0から繰返します)。

0 1 2 3 4 5 6 7 8 9 0 1
|F|u|m|i|o|N|o|n|a|k|a|

このようにインデックスが仕切の番号だとすれば、ストリング"FumioNonaka.com"からサブストリング"Nonaka"を取り出すには、開始位置として5、終了位置に11を指定すればよいことがわかりやすいでしょう。以下の例は、サブストリングを取り出した後、その'length'プロパティの値も確認しています。

sString = "FumioNonaka.com";
sLastName = sString.substring(5, 11);
trace(sLastName);
trace(sLastName.length);
// 「出力」ウィンドウの表示
Nonaka
6

_____

作成者: 野中文雄
作成日: 2002年7月28日


Copyright © 2001-2006 Fumio Nonaka.  All rights reserved.