パッケージトップレベル
public final class String
継承String Inheritance Object

String クラスは、文字のストリングを表すデータ型です。String クラスは、プリミティブなストリング値の型の操作を可能にするメソッドとプロパティを提供します。String() 関数を使用して任意のオブジェクトの値を String データ型オブジェクトに変換できます。

concat()fromCharCode()slice()substr() を除く String クラスのすべてのメソッドは汎用メソッドです。つまり、メソッドが toString() を呼び出した後で、メソッドの操作が実行されます。これらのメソッドは String オブジェクト以外のオブジェクトでも使用できます。

すべてのストリングインデックスはゼロから始まるため、各ストリング x の最終文字のインデックスは x.length - 1 のようになります。

コンストラクタメソッド new String() を使用して新しいストリング変数を作成するか、または単にストリングリテラル値を割り当てるかにかかわらず、String クラスのメソッドをどれでも呼び出すことができます。旧バージョンの ActionScript とは異なり、String クラスのメソッドには、コンストラクタを使用するか、グローバル関数を使用するか、または単にストリングリテラル値を割り当てるかによる違いはありません。次の各行のコードは同じです。

 var str:String = new String("foo");
 var str:String = "foo";
 var str:String = String("foo");

ストリング変数を undefined に設定すると、Adobe® Flash® Player により undefinednull に型変換されます。次に例を示します。

 var s:String = undefined;
このステートメントでは、値は undefined ではなく null に設定されます。undefined を使用する必要がある場合は、String() 関数を使用します。

例の表示

関連項目

String Function
データ型の詳細
型変換
ストリングの操作
正規表現の概要


パブリックプロパティ
 プロパティ定義
 Inheritedconstructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
Object
  length : int
[read-only] 指定した String オブジェクト内にある文字数を表す整数です。
String
 Inheritedprototype : Object
[static] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
Object
パブリック Methods
 メソッド定義
  
指定されたストリングに初期化された新しい String オブジェクトを作成します。
String
  
charAt(index:Number = 0):String
index パラメータで指定された位置にある文字を返します。
String
  
charCodeAt(index:Number = 0):Number
指定された index にある文字の数値 Unicode 文字コードを返します。
String
  
concat(... args):String
指定された引数を必要に応じてストリングに変換し、String オブジェクトの最後に追加して結果のストリングを返します。
String
  
fromCharCode(... charCodes):String
[static] パラメータ内の Unicode 文字コードに対応する文字をストリングとして返します。
String
 Inherited
指定されたプロパティがオブジェクトに定義されているかどうかを示します。
Object
  
indexOf(val:String, startIndex:Number = 0):int
ストリング内を検索し、ストリング内の startIndex 以降の位置で見つかった最初の val の位置を返します。
String
 Inherited
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
Object
  
lastIndexOf(val:String, startIndex:Number = 0x7FFFFFFF):int
ストリングを右から左へと探し、startIndex の前に見つかった最後の val のインデックスを返します。
String
  
localeCompare(other:String, ... values):int
複数のストリングのソート順を比較し、比較の結果を整数で返します。
String
  
match(pattern:*):Array
指定された pattern をストリングと照合します。
String
 Inherited
指定されたプロパティが存在し、列挙できるかどうかを示します。
Object
  
replace(pattern:*, repl:Object):String
指定された pattern をストリングと照合し、新しいストリングを返します。この新しいストリングでは、pattern と最初に一致した部分が repl で指定された内容に置き換えられます。
String
  
search(pattern:*):int
指定された pattern を検索し、最初に一致したサブストリングのインデックスを返します。
String
 Inherited
ループ処理に対するダイナミックプロパティの可用性を設定します。
Object
  
slice(startIndex:Number = 0, endIndex:Number = 0x7fffffff):String
返されるストリングには、startIndex 文字から endIndex 文字の前までのすべての文字が含まれます。
String
  
split(delimiter:*, limit:Number = 0x7fffffff):Array
指定された delimiter パラメータがある各位置で String オブジェクトをサブストリングの配列に分割します。
String
  
substr(startIndex:Number = 0, len:Number = 0x7fffffff):String
指定された startIndex で開始する文字で構成され、len で指定された長さを持つサブストリングを返します。
String
  
substring(startIndex:Number = 0, endIndex:Number = 0x7fffffff):String
startIndex で指定された文字から endIndex - 1 までのすべての文字で構成されるストリングを返します。
String
  
このストリングのコピーを返します。すべての大文字が小文字に変換されます。
String
  
このストリングのコピーを返します。すべての小文字が大文字に変換されます。
String
  
このストリングのコピーを返します。すべての大文字が小文字に変換されます。
String
 Inherited
指定されたオブジェクトのストリング表現を返します。
Object
  
このストリングのコピーを返します。すべての小文字が大文字に変換されます。
String
  
String インスタンスのプリミティブ値を返します。
String
プロパティの詳細
lengthプロパティ
length:int  [read-only]

指定した String オブジェクト内にある文字数を表す整数です。

すべてのストリングインデックスはゼロから始まるため、各ストリング x の最終文字のインデックスは x.length - 1 のようになります。

実装
    public function get length():int

関連項目

コンストラクタの詳細
String()コンストラクタ
public 関数 String(val:String)

指定されたストリングに初期化された新しい String オブジェクトを作成します。

メモ : ストリングリテラルの方が String オブジェクトよりもオーバーヘッドが少なく、一般的により簡単に使用できます。String オブジェクトを使用する特別な理由がある場合以外は、String クラスよりもストリングリテラルを使用することをお勧めします。

パラメータ
val:String — 新しい String オブジェクトの初期値です。

関連項目

メソッドの詳細
charAt()メソッド
AS3 function charAt(index:Number = 0):String

index パラメータで指定された位置にある文字を返します。index に指定された値が 0 ~ string.length - 1 の範囲内にない場合は、空のストリングを返します。

このメソッドは String.charCodeAt() に似ていますが、16 ビット整数の文字コードではなく文字が返される点が異なります。

パラメータ
index:Number (default = 0) — ストリング内の文字の位置を示す整数です。最初の文字の位置は 0 で、最後の文字の位置は my_str.length - 1 です。

戻り値
String — 指定されたインデックス位置にある文字です。指定されたインデックスがこのストリングのインデックスの範囲外である場合は、空のストリングが返されます。

関連項目

charCodeAt()メソッド 
AS3 function charCodeAt(index:Number = 0):Number

指定された index にある文字の数値 Unicode 文字コードを返します。index に指定された値が 0 ~ string.length - 1 の範囲内にない場合は、NaN を返します。

このメソッドは、String.charAt() と似ていますが、実際の文字ではなく 16 ビット整数文字コードを返す点が異なります。

パラメータ
index:Number (default = 0) — ストリング内の文字の位置を示す整数です。最初の文字の位置は 0 で、最後の文字の位置は my_str.length - 1 です。

戻り値
Number — 指定されたインデックスにある文字の Unicode 文字コードを返します。または、インデックスがこのストリングのインデックスの範囲外である場合は、 NaN を返します。

関連項目

concat()メソッド 
AS3 function concat(... args):String

指定された引数を必要に応じてストリングに変換し、String オブジェクトの最後に追加して結果のストリングを返します。ソースの String オブジェクトの元の値は変更されません。

パラメータ
... args — 連結される 0 個以上の値です。

戻り値
String — 指定のパラメータにより連結されたこのストリングで構成される新しいストリングです。

関連項目

fromCharCode()メソッド 
AS3 static function fromCharCode(... charCodes):String

パラメータ内の Unicode 文字コードに対応する文字をストリングとして返します。

パラメータ
... charCodes — Unicode 値を表す一連の 10 進整数です。

戻り値
String — 指定された Unicode 文字コードのストリング値です。

関連項目

indexOf()メソッド 
AS3 function indexOf(val:String, startIndex:Number = 0):int

ストリング内を検索し、ストリング内の startIndex 以降の位置で見つかった最初の val の位置を返します。このインデックスはゼロから始まります。つまりストリングの最初の文字は、インデックス 1 ではなくインデックス 0 にあると見なされます。val が見つからない場合、メソッドは -1 を返します。

パラメータ
val:String — 検索対象のストリングです。
 
startIndex:Number (default = 0) — 検索を開始するインデックスを示す整数です。これはオプションです。

戻り値
int — 指定のサブストリングまたは -1 で最初に見つかった指定のサブストリングのインデックスです。

関連項目

lastIndexOf()メソッド 
AS3 function lastIndexOf(val:String, startIndex:Number = 0x7FFFFFFF):int

ストリングを右から左へと探し、startIndex の前に見つかった最後の val のインデックスを返します。このインデックスはゼロから始まります。つまり最初の文字はインデックス 0 にあり、最後の文字は string.length - 1 にあります。val が見つからなかった場合は、-1 を返します。

パラメータ
val:String — 検索対象のストリングです。
 
startIndex:Number (default = 0x7FFFFFFF)val の検索を開始するインデックスを示す整数です。これはオプションです。デフォルトは、インデックスに許可されている最大値です。startIndex が指定されていない場合、ストリング内の最後のアイテムから検索が開始されます。

戻り値
int — 最後に見つかった指定のサブストリングの位置です。見つからなかった場合は -1 を返します。

関連項目

localeCompare()メソッド 
AS3 function localeCompare(other:String, ... values):int

複数のストリングのソート順を比較し、比較の結果を整数で返します。このメソッドはロケールに特化した方法で比較を処理することを目的としていますが、ActionScript 3.0 実装では、等価 (==) 演算子または不等価 (!=) 演算子などの他のストリング比較と異なる結果を生成しません。ストリングが等価の場合、戻り値は 0 になります。元のストリング値が other で指定されたストリング値より前に来る場合、戻り値は負の整数になります。この値の絶対値は、2 つのストリング値を隔てる文字数を表します。元のストリング値が other の後に来る場合、戻り値は正の整数になります。この値の絶対値は、2 つのストリング値を隔てる文字数を表します。

パラメータ
other:String — 比較するストリング値です。
 
... values — 比較するストリングの追加セットです。これはオプションです。

戻り値
int — ストリングが等価の場合、値 0 になります。それ以外の場合、元のストリングがストリング引数より前に来る場合は負の整数、ストリング引数が元のストリングより前に来る場合は正の整数になります。どちらの場合も、数値の絶対値は 2 つのストリングの違いを表します。.
match()メソッド 
AS3 function match(pattern:*):Array

指定された pattern をストリングと照合します。

パラメータ
pattern:* — 照合するパターンです。パターンには任意の型のオブジェクトを指定できますが、一般的にストリングまたは正規表現を使用します。pattern が正規表現でもストリングでもない場合、メソッドは実行する前にこれをストリングに変換します。

戻り値
Array — 指定された pattern と一致するストリング内のすべてのサブストリングで構成されるストリングの配列です。

pattern が正規表現の場合、一致するサブストリングを複数含む配列を返すために、g (グローバル) フラグを正規表現で設定する必要があります。

  • g (グローバル) フラグを設定しない場合、返される配列に含まれる一致するサブストリングは 1 つだけとなり、正規表現の lastIndex プロパティは変更されません。
  • g (グローバル) フラグを設定した場合、メソッドはストリングの先頭 (インデックス位置 0) から検索を開始します。/x*/ などの正規表現を使用した場合は、一致するサブストリングが空のストリングであることがあります。その場合、メソッドはその空のストリングを一致するサブストリングの配列に追加し、次のインデックス位置から検索を続行します。メソッドが完了すると、正規表現の lastIndex プロパティは 0 に設定されます。

一致するサブストリングが見つからなかった場合、メソッドは null を返します。pattern パラメータの値を渡さなかった場合、または未定義値を渡した場合、メソッドは null を返します。

関連項目

replace()メソッド 
AS3 function replace(pattern:*, repl:Object):String

指定された pattern をストリングと照合し、新しいストリングを返します。この新しいストリングでは、pattern と最初に一致した部分が repl で指定された内容に置き換えられます。pattern パラメータには、ストリングまたは正規表現を指定できます。repl パラメータには、ストリングまたは関数を指定できます。関数を指定した場合、一致した部分が、関数によって返されるストリングに置き換えられます。元のストリングは変更されません。

次の例では、"sh" (大文字と小文字は区別) の最初のインスタンスのみが置き換えられます。

 var myPattern:RegExp = /sh/;  
 var str:String = "She sells seashells by the seashore.";
 trace(str.replace(myPattern, "sch"));  
    // She sells seaschells by the seashore.

次の例では、g (グローバル) フラグが正規表現で設定されているので、"sh" (大文字と小文字は区別) のすべてのインスタンスが置き換えられます。

 var myPattern:RegExp = /sh/g;  
 var str:String = "She sells seashells by the seashore.";
 trace(str.replace(myPattern, "sch"));  
    // She sells seaschells by the seaschore.

次の例では、g (グローバル) フラグが正規表現で設定されているので、"sh" のすべてのインスタンスが置き換えられます。また、i (ignoreCase) フラグが設定されているため、一致は大文字と小文字を区別 しません

 var myPattern:RegExp = /sh/gi;  
 var str:String = "She sells seashells by the seashore.";
 trace(str.replace(myPattern, "sch"));  
    // sche sells seaschells by the seaschore.
パラメータ
pattern:* — 照合するパターンです。パターンには任意の型のオブジェクトを指定できますが、一般的にストリングまたは正規表現を使用します。ストリングまたは正規表現以外のオブジェクトを pattern パラメータに指定した場合、toString() メソッドがパラメータに適用され、結果のストリングを pattern として使用して replace() メソッドが実行されます。
 
repl:Object — 通常は、一致した内容に置き換えるストリングです。ただし、このパラメータに関数を指定することもできます。関数を指定した場合、一致した内容が、関数によって返されるストリングに置き換えられます。

repl パラメータにストリングを指定し、pattern パラメータに正規表現を指定した場合、repl ストリングに次の特殊な $ 置換コードを使用することができます。

$ コード 置換テキスト
$$ $
$& パターンに一致したサブストリング
$` ストリングのうち、パターンに一致したサブストリングより前にある部分。このコードで使用する記号は、直線状の左一重引用符 (`) です。垂直の一重引用符 (') または曲がった左一重引用符 (‘) ではありません。
$' ストリングのうち、パターンに一致したサブストリングより後の部分です。このコードで使用する記号は、垂直の一重引用符 (') です。
$n 括弧指定されたグループの n 番目の一致です。n は 1 桁の数字 (1 ~ 9) であり、$n の後に 10 進数字は続きません。
$nn 括弧指定されたグループの nn 番目一致です。nn は 2 桁の 10 進数字 (01 ~ 99) です。nn 番目のパターンが未定義の場合、置換テキストは空のストリングになります。

たとえば、次の例は、1 番目および 2 番目に一致したキャプチャグループを表す $2 および $1 置換コードを使用する方法を示しています。

var str:String = "flip-flop";
 var pattern:RegExp = /(\w+)-(\w+)/g;
 trace(str.replace(pattern, "$2-$1")); // flop-flip

repl として関数を指定した場合、replace() メソッドは次のパラメータを関数に渡します。

  • ストリング内の一致する部分。
  • キャプチャされた、括弧指定されたグループとのすべての一致が次の引数として提供されます。この方法で渡される引数の数は、括弧内のパターンとの一致数によって異なります。括弧内のパターンとの一致数は、関数コード内の arguments.length - 3 を確認して特定することができます。
  • ストリング内で一致部分が始まる場所のインデックス位置。
  • ストリング全体。

次に例を示します。

 var str1:String = "abc12 def34";
 var pattern:RegExp = /([a-z]+)([0-9]+)/;
 var str2:String = str1.replace(pattern, replFN);
 trace (str2);   // 12abc 34def
 
 function replFN():String {
  return arguments[2] + arguments[1];
 }

この例では、repl パラメータに関数を使用して replace() メソッドを呼び出しています。正規表現 (/([a-z]([0-9]/g) は 2 回一致しています。1 回目は、パターンがサブストリング "abc12" に一致し、次の引数のリストが関数に渡されます。

 {"abc12", "abc", "12", 0, "abc12 def34"}

2 回目は、パターンがサブストリング "def23" に一致し、次の引数のリストが関数に渡されます。

 {"def34", "def", "34", 6, "abc123 def34"}

戻り値
String — 結果のストリングです。ソースストリングは変更されていません。

関連項目

search()メソッド 
AS3 function search(pattern:*):int

指定された pattern を検索し、最初に一致したサブストリングのインデックスを返します。一致するサブストリングがなかった場合、メソッドは -1 を返します。

パラメータ
pattern:* — 照合するパターンです。パターンには任意の型のオブジェクトを指定できますが、一般的にストリングまたは正規表現を使用します。pattern が正規表現でもストリングでもない場合、メソッドは実行する前にこれをストリングに変換します。正規表現を指定した場合、メソッドは正規表現のグローバルフラグ ("g") を無視し、また正規表現の lastIndex プロパティを無視し、元のまま維持します。未定義の値を渡した場合、または値を渡さなかった場合、メソッドは -1 を返します。

戻り値
int — 最初に一致したサブストリングのインデックス、または一致するサブストリングがない場合は -1 です。ストリングのインデックスはゼロから始まり、ストリングの先頭の文字はインデックス 0、最後の文字は string.length - 1 です。

関連項目

slice()メソッド 
AS3 function slice(startIndex:Number = 0, endIndex:Number = 0x7fffffff):String

返されるストリングには、startIndex 文字から endIndex 文字の前までのすべての文字が含まれます。元の String オブジェクトは変更されません。endIndex パラメータを指定しないと、サブストリングの終わりはストリングの終わりです。startIndex で指定されたインデックス文字が、endIndex で指定されたインデックス文字と同じか、その右側にある場合、メソッドは空のストリングを返します。

パラメータ
startIndex:Number (default = 0) — スライスの始点のゼロから始まるインデックスです。startIndex が負の数値の場合、スライスは右から左に作成されます。このとき、-1 が最後の文字です。
 
endIndex:Number (default = 0x7fffffff) — スライスの終点のインデックスより 1 大きい整数値です。endIndex パラメータで指定されたインデックス位置の文字は、抽出されるストリングには含まれません。endIndex が負の数値の場合、終点はストリングの終わりからカウントされて決定されます。このとき、-1 が最後の文字になります。デフォルトは、インデックスに許可されている最大値です。このパラメータを省略すると、String.length が使用されます。

戻り値
String — 指定されたインデックスに基づくサブストリングです。

関連項目

split()メソッド 
AS3 function split(delimiter:*, limit:Number = 0x7fffffff):Array

指定された delimiter パラメータがある各位置で String オブジェクトをサブストリングの配列に分割します。

delimiter パラメータが正規表現の場合、ストリング内の特定の位置で見つかった最初の一致のみが考慮されます。バックトラッキングにより、同じ位置で空でないサブストリングの一致が見つかったとしても、それは考慮されません。たとえば、次のようになります。

  var str:String = "ab";
  var results:Array = str.split(/a*?/); // results == ["","b"]
  
  results = str.split(/a*/); // results == ["","b"].)

delimiter パラメータがグループ化括弧を含む正規表現の場合、delimiter が一致するたびに、未定義結果を含むグループ化括弧の結果が出力配列にスプライスされます。次に例を示します。

  var str:String = "Thi5 is a tricky-66 example.";
  var re:RegExp = /(\d+)/;
  var results:Array = str.split(re);
      // results == ["Thi","5"," is a tricky-","66"," example."]

limit パラメータを指定した場合、配列には指定された数を超えるエレメントは返されません。

delimiter が空のストリング、空の正規表現、または空のストリングも一致とされる正規表現の場合、ストリング内のそれぞれの 1 文字が配列内のエレメントとして出力されます。

delimiter パラメータが未定義の場合は、ストリング全体が返される配列の最初のエレメントに挿入されます。

パラメータ
delimiter:* — このストリングを分割する場所を示すパターンです。パターンには任意の型のオブジェクトを指定できますが、一般的にストリングまたは正規表現を使用します。delimiter が正規表現でもストリングでもない場合、メソッドは実行する前にこれをストリングに変換します。
 
limit:Number (default = 0x7fffffff) — 配列に挿入するアイテムの最大数です。デフォルトは、許可されている最大値です。

戻り値
Array — サブストリングの配列です。

関連項目

substr()メソッド 
AS3 function substr(startIndex:Number = 0, len:Number = 0x7fffffff):String

指定された startIndex で開始する文字で構成され、len で指定された長さを持つサブストリングを返します。元のストリングは変更されません。

パラメータ
startIndex:Number (default = 0) — サブストリングの作成に使用する先頭文字のインデックスを示す整数です。startIndex が負の数値の場合、始点はストリングの終わりから決定されます。このとき、-1 が最後の文字になります。
 
len:Number (default = 0x7fffffff) — 作成するサブストリングの文字数です。デフォルト値は、許可されている最大値です。len を指定しないと、サブストリングには startIndex から終わりまでのすべての文字が含まれます。

戻り値
String — 指定されたパラメータに基づくサブストリングです。

関連項目

substring()メソッド 
AS3 function substring(startIndex:Number = 0, endIndex:Number = 0x7fffffff):String

startIndex で指定された文字から endIndex - 1 までのすべての文字で構成されるストリングを返します。endIndex が指定されていない場合、String.length が使用されます。startIndex の値が endIndex の値と等しい場合、空のストリングが返されます。startIndex の値が endIndex の値より大きい場合、関数を実行する前にパラメータが自動的に入れ替わります。元のストリングは変更されません。

パラメータ
startIndex:Number (default = 0) — サブストリングの作成に使用する先頭文字のインデックスを示す整数です。startIndex に指定できる値は、0String.length です。startIndex が負の値の場合、0 が使用されます。
 
endIndex:Number (default = 0x7fffffff) — 抽出するサブストリングの最後の文字のインデックスに 1 を加えた整数です。endIndex に指定できる値は、0String.length です。endIndex にある文字はサブストリングに含まれません。デフォルトは、インデックスに許可されている最大値です。このパラメータを省略すると、String.length が使用されます。このパラメータが負の値である場合は、0 が使用されます。

戻り値
String — 指定されたパラメータに基づくサブストリングです。

関連項目

toLocaleLowerCase()メソッド 
AS3 function toLocaleLowerCase():String

このストリングのコピーを返します。すべての大文字が小文字に変換されます。元のストリングは変更されません。このメソッドはロケールに特化した方法で変換を処理することを目的としていますが、ActionScript 3.0 実装では、toLowerCase() と異なる結果を生成しません。

戻り値
String — このストリングのコピーです。すべての大文字が小文字に変換されます。

関連項目

toLocaleUpperCase()メソッド 
AS3 function toLocaleUpperCase():String

このストリングのコピーを返します。すべての小文字が大文字に変換されます。元のストリングは変更されません。このメソッドはロケールに特化した方法で変換を処理することを目的としていますが、ActionScript 3.0 実装では、toUpperCase() と異なる結果を生成しません。

戻り値
String — このストリングのコピーです。すべての小文字が大文字に変換されます。

関連項目

toLowerCase()メソッド 
AS3 function toLowerCase():String

このストリングのコピーを返します。すべての大文字が小文字に変換されます。元のストリングは変更されません。

このメソッドは、対応する Unicode の小文字が存在するすべての文字 (単に A ~ Z ではない) を変換します。

  var str:String = " JOSÉ BARÇA";
  trace(str.toLowerCase()); // josé barça

これらの大文字と小文字のマッピングは、Unicode Character Database で定義されているとおりに、UnicodeData.txt ファイルと SpecialCasings.txt ファイルで定義されています。

戻り値
String — このストリングのコピーです。すべての大文字が小文字に変換されます。

関連項目

toUpperCase()メソッド 
AS3 function toUpperCase():String

このストリングのコピーを返します。すべての小文字が大文字に変換されます。元のストリングは変更されません。

このメソッドは、対応する Unicode の大文字が存在するすべての文字 (単に a ~ z ではない) を変換します。

  var str:String = "José Barça";
  trace(str.toUpperCase()); // JOSÉ BARÇA

これらの大文字と小文字のマッピングは、Unicode Character Database で定義されているとおりに、UnicodeData.txt ファイルと SpecialCasings.txt ファイルで定義されています。

戻り値
String — このストリングのコピーです。すべての小文字が大文字に変換されます。

関連項目

valueOf()メソッド 
AS3 function valueOf():String

String インスタンスのプリミティブ値を返します。このメソッドは、String オブジェクトをプリミティブなストリング値に変換するように設計されています。Flash Player は必要時に自動的に valueOf() を呼び出すようになっているため、このメソッドを明示的に呼び出すことが必要となることはほとんどありません。

戻り値
String — ストリングの値です。

The following example uses the StringExample and StringHelper classes to show how various methods of the String class are used. This is accomplished using the following steps:
  1. The constructor for StringExample declares several local String instances, which are initialized with various strings and a new StringHelper object.
  2. The StringHelper class has the following methods:
    • replace(): calls the split() and join() methods of String to remove a substring of the string passed in with a new one.
    • trim(): calls both trimBack() and trimFront() using the strings passed in and returns the updated string.
    • trimFront():recursively removes all characters that match the char parameter, starting from the front of the string and working toward the end, until the first character in the string does not match char and returns the updated string.
    • trimBack(): recursively removes all characters that match the char parameter, starting from the end of the string and working backward, until the last character in the string does not match char and returns the updated string.
    • stringToCharacter(): returns the first character of the string passed to it.
  3. Three strings are then produced using the declared string variables with a call to the replace() method used to produce the second string and trim() to produce the third string.
 package { import flash.display.Sprite;

    public class StringExample extends Sprite { public function StringExample() { var companyStr:String = new String("     Company X"); var productStr:String = "Product Z Basic     "; var emptyStr:String = " "; var strHelper:StringHelper = new StringHelper();

            var companyProductStr:String = companyStr + emptyStr + productStr; trace("'" + companyProductStr + "'");    // '     Company X Product Z Basic     '

            companyProductStr = strHelper.replace(companyProductStr, "Basic", "Professional"); trace("'" + companyProductStr + "'");    // '     Company X Product Z Professional     '

            companyProductStr = strHelper.trim(companyProductStr, emptyStr); trace("'" + companyProductStr + "'");    // 'Company X Product Z Professional' } } }

class StringHelper { public function StringHelper() { }

    public function replace(str:String, oldSubStr:String, newSubStr:String):String { return str.split(oldSubStr).join(newSubStr); }

    public function trim(str:String, char:String):String { return trimBack(trimFront(str, char), char); }

    public function trimFront(str:String, char:String):String { char = stringToCharacter(char); if (str.charAt(0) == char) { str = trimFront(str.substring(1), char); } return str; }

    public function trimBack(str:String, char:String):String { char = stringToCharacter(char); if (str.charAt(str.length - 1) == char) { str = trimBack(str.substring(0, str.length - 1), char); } return str; }

    public function stringToCharacter(str:String):String { if (str.length == 1) { return str; } return str.slice(0, 1); } }