套件最上層
類別public final class String
繼承String Inheritance Object

語言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

String 類別是代表字元字串的資料類型。 String 類別可提供方法和屬性,讓您操作基本的字串值類型。 您可以使用 String() 函數,將任何物件的值轉換成 String 資料類型物件。

除了 concat()fromCharCode()slice()substr() 之外,所有 String 類別的方法都是一般性,也就是說,這些方法會在執行作業之前先呼叫 toString(),而且您可以與其它非 String 物件一起搭配使用這些方法。

由於所有字串索引都是從零開始計算的,因此任何 x 字串的最後一個字元索引都是 x.length - 1

不論是使用建構函式方法 new String() 建立新的字串變數,或是直接指定字串常值,您都可以呼叫 String 類別的任何方法。 不同於先前版本的 ActionScript,不論您是使用建構函式、全域函數或是直接指派字串常值,都不會有任何差別。 下列幾行程式碼是相等的:

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

當字串變數設定為 undefined 時,Adobe ® Flash ® Player 會強制將 undefined 轉型為 null。 因此,陳述式:

 var s:String = undefined;
會將值設定為 null 而非 undefined。 如果您需要使用 undefined,請使用 String() 函數。

檢視範例

請參閱

String Function
資料類型說明
類型轉換
使用字串
規則運算式語法


公用 屬性
 屬性定義自
 Inheritedconstructor : Object
類別物件的參照或是特定物件實體的建構函數。
Object
  length : int
[read-only] 指定的 String 物件中用來指定字元數目的整數。
String
 Inheritedprototype : Object
[static] 類別或函數物件之原型物件的參照。
Object
公用 方法
 方法定義自
  
會建立初始化為指定之字串的新 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]

語言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

指定的 String 物件中用來指定字元數目的整數。

由於所有字串索引都是從零開始計算的,因此任何 x 字串的最後一個字元索引都是 x.length - 1


實作
    public function get length():int

請參閱

建構函式詳細資訊
String()建構函式
public function String(val:String)

語言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

會建立初始化為指定之字串的新 String 物件。

注意:因為字串常值使用的額外資源比 String 物件少,而且通常比較容易使用,所以除非您有很好的理由要使用 String 物件而非字串常值,否則應該使用字串常值而非 String 類別。

參數
val:String — 新 String 物件的初始值。

請參閱

方法詳細資訊
charAt()方法
AS3 function charAt(index:Number = 0):String

語言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

會傳回位於 index 參數所指定之位置中的字元。 如果 index 不是介於 0 和 string.length - 1 之間的數字,便會傳回空字串。

除了傳回的值是字元而非 16 位元整數字元碼以外,這個方法和 String.charCodeAt() 非常類似。

參數

index:Number (default = 0) — 整數,指定字串中某個字元的位置。 第一個字元會由 0 指出,而最後一個字元則由 my_str.length - 1 指出。

傳回值
String — 位於指定之 index 的字元。 或者,如果指定的索引在此字串索引的範圍以外,便會傳回空字串。

請參閱

charCodeAt()方法 
AS3 function charCodeAt(index:Number = 0):Number

語言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

會傳回位於指定 index 之字元的數字 Unicode 字元碼。 如果 index 不是介於 0 和 string.length - 1 之間的數字,便會傳回 NaN

除了傳回的值是 16 位元整數字元碼而非實際字元以外,這個方法與 String.charAt() 非常類似。

參數

index:Number (default = 0) — 整數,指定字串中某個字元的位置。 第一個字元會由 0, 指出,而最後一個字元則由 my_str.length - 1 指出。

傳回值
Number — 位於指定 index 之字元的 Unicode 字元碼。 或者,如果該索引在此字串的索引範圍之外,則為 NaN

請參閱

concat()方法 
AS3 function concat(... args):String

語言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

會將所提供的引數附加至 String 物件的結尾,在必要時將這些引數轉換成字串,並傳回產生的字串。 來源 String 物件的原始值會維持不變。

參數

... args — 零或多個要連接的值。

傳回值
String — 新的字串,由這個字串與指定之參數連接組成。

請參閱

fromCharCode()方法 
AS3 static function fromCharCode(... charCodes):String

語言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

會傳回參數中 Unicode 字元碼代表之字元所組成的字串。

參數

... charCodes — 代表 Unicode 值的十進位整數系列。

傳回值
String — 指定之 Unicode 字元碼的字串值。

請參閱

indexOf()方法 
AS3 function indexOf(val:String, startIndex:Number = 0):int

語言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

搜尋字串,並傳回在呼叫字串中 startIndex 處或之後找到之 val 第一次出現的位置。 這個索引是從零開始,表示字串的第一個字串會視為位於索引 0 而非索引 1。 如果找不到 val,此方法會傳回 -1。

參數

val:String — 要搜尋的子字串。
 
startIndex:Number (default = 0) — 選擇性整數,指定搜尋的開始索引。

傳回值
int — 指定之子字串第一次出現的索引或 -1

請參閱

lastIndexOf()方法 
AS3 function lastIndexOf(val:String, startIndex:Number = 0x7FFFFFFF):int

語言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

會由右至左搜尋字串,並傳回在 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
Player 版本 : Flash Player 9

會比較兩個或更多字串的排序順序,並以整數形式傳回比較的結果。 當此方法要以地區特定的方式處理比較作業時,ActionScript 3.0 實作並不會產生不同於其它字串比較的結果,例如相等 (==) 或不相等 (!=) 運算子。 如果這些字串都相等,傳回值就是 0。 如果原始字串值在 other 指定的字串值之前,傳回值便會是負整數,而其絕對值則代表分隔兩個字串值的字元數。 如果原始字串值在 other 之後,傳回值便會是正整數,而其絕對值則代表分隔兩個字串值的字元數。

參數

other:String — 要加以比較的字串值。
 
... values — 要加以比較的更多選擇性字串組。

傳回值
int — 如果字串都相等,則值為 0。 否則,如果原始字串優先於字串引數,便會是負整數;如果字串引數優先於原始字串,則會是正整數。 在這兩種情況下,數字的絕對值都代表兩個字串之間的差異。
match()方法 
AS3 function match(pattern:*):Array

語言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

會比對指定的 pattern 與字串。

參數

pattern:* — 要加以比對的樣式,它可以是任何類型的物件,不過通常會是字串或規則運算式。 如果 pattern 不是規則運算式或字串,此方法便會在執行前先將它轉換成字串。

傳回值
Array — 字串陣列,它是由字串中符合指定之 pattern 的所有子字串所組成。

如果 pattern 是規則運算式,則為了傳回具有一個以上相符子字串的陣列,就必須在規則運算式中設定 g (全域) 旗標:

  • 如果「沒有」設定 g (全域) 旗標,傳回的陣列便不會包含一個以上的符合項目,而且規則運算式的 lastIndex 屬性會維持不變。
  • 如果「有」設定 g (全域) 旗標,此法便會從字串的開頭 (索引位置 0) 開始搜尋。 如果符合的子字串是空字串 (可能會在類似 /x*/ 的規則運算式發生),此方法便會將該空字串加入符合項目的陣列中,然後繼續在下一個索引位置搜尋。 在此方法完成之後,規則運算式的 lastIndex 屬性便會設定為 0。

如果找不到符合項目,此方法便會傳回 null。 如果您沒有傳遞任何值 (或是傳遞未定義的值) 做為 pattern 參數,此方法便會傳回 null

請參閱

replace()方法 
AS3 function replace(pattern:*, repl:Object):String

語言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

會針對指定的 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 (忽略大小寫) 旗標,所以相符項目便「不會」區分大小寫:

 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() 方法便會套用至參數,並且 replace() 方法會使用產生的字串做為 pattern 來執行。
 
repl:Object — 通常,這會是插入符合內容之位置的字串。 不過,您也可以指定函數做為此參數。 如果您指定函數,此函數傳回的字串便會插入符合內容的位置。

當您指定字串做為 repl 參數,並指定規則運算式做為 pattern 參數時,即可使用 repl 字串中的特殊「$ 取代程式碼」,如下所示:

$ 碼 取代文字
$$ $
$& 符合的子字串。
$` 符合之子字串前面的字串部分。 請注意,此程式碼會使用一般左側單引號字元 (`),而非一般單引號字元 (') 或左側智慧單引號字元 (‘)。
$' 符合之子字串後面的字串部分。 請注意,這個取代碼會使用一般單引號字元 (')。
$ n n 個捕捉到的括號群組相符項目,其中 n 是 1 到 9 的單一位數,而且 $ n 的後面沒有小數位數。
$ nn nn 個捕捉到的括號群組相符項目,其中 nn 是兩位數的十進位數字 (01 到 99)。 如果第 nn 個捕捉未定義,取代文字便會是空字串。

例如,以下會說明 $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]+)/g;
 var str2:String = str1.replace(pattern, replFN);
 trace(str2);   // 12abc 34def
 
 function replFN():String {
  return arguments[2] + arguments[1];
 }

replace() 方法的呼叫會使用函數做為 repl 參數。 此規則運算式 (/([a-z]([0-9]/g) 已經符合兩次。 第一次時,此樣式符合子字串 "abc12",並且將下列引數清單傳遞至該函數:

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

第二次時,此樣式符合子字串 "def23",並且將下列引數清單傳遞至該函數:

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

傳回值
String — 產生的字串。 請注意,來源字串會維持不變。

請參閱

search()方法 
AS3 function search(pattern:*):int

語言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

會搜尋指定的 pattern,並傳回第一個相符之子字串的索引。 如果沒有符合的子字串,此方法便會傳回 -1

參數

pattern:* — 要加以比對的樣式,可以是任何類型的物件,不過通常會是字串或規則運算式。 如果 pattern 不是規則運算式或字串,此方法便會在執行前先將它轉換成字串。 請注意,如果您指定規則運算式,此方法便會忽略規則運算式的全域旗標 ("g"),並忽略規則運算式的 lastIndex 屬性 (而且不會加以修改)。 如果您傳遞未定義的值 (或是不傳遞任何值),此方法便會傳回 -1

傳回值
int — 第一個相符之子字串的索引,若是沒有符合項目則為 -1。 請注意,字串索引是從零開始,字串的第一個字元會在索引 0,最後一個字元則會在 string.length - 1

請參閱

slice()方法 
AS3 function slice(startIndex:Number = 0, endIndex:Number = 0x7fffffff):String

語言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

會傳回一個字串,其中包含 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

語言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

會分割指定之 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 是空字串、空的規則運算式,或是能夠符合空字串的規則運算式,則字串中的每個單一字元都會輸出為陣列中的元素。

如果未定義 delimiter 參數,整個字串會放到傳回之陣列的第一個元素中。

參數

delimiter:* — 指定在何處分割此字串的樣式。 這可以是任何類型的物件,不過通常會是字串或規則運算式。 如果 delimiter 不是規則運算式或字串,此方法便會在執行前先將它轉換成字串。
 
limit:Number (default = 0x7fffffff) — 要放入字串中之項目的最大數目。 預設值是允許的最大值。

傳回值
Array — 子字串的陣列。

請參閱

substr()方法 
AS3 function substr(startIndex:Number = 0, len:Number = 0x7fffffff):String

語言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

會傳回子字串,它所組成的字元是從指定的 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

語言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

會傳回字串,它是由 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
Player 版本 : Flash Player 9

會傳回此字串的副本,其中所有大寫字元都會轉換成小寫字元。 不會修改原始的字串。 儘管此方法會以地區特定的方式處理轉換,ActionScript 3.0 實作卻不會產生與 toLowerCase() 方法不同的結果。

傳回值
String — 此字串的副本,其中所有大寫字元都會轉換成小寫字元。

請參閱

toLocaleUpperCase()方法 
AS3 function toLocaleUpperCase():String

語言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

會傳回此字串的副本,其中所有小寫字元都會轉換成大寫字元。 不會修改原始的字串。 儘管此方法會以地區特定的方式處理轉換,ActionScript 3.0 實作卻不會產生與 toUpperCase() 方法不同的結果。

傳回值
String — 此字串的副本,其中所有小寫字元都會轉換成大寫字元。

請參閱

toLowerCase()方法 
AS3 function toLowerCase():String

語言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

會傳回此字串的副本,其中所有大寫字元都會轉換成小寫字元。 不會修改原始的字串。

此方法會轉換具有與 Unicode 小寫字元對等的所有字元 (不僅只是 A-Z):

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

傳回值
String — 此字串的副本,其中所有大寫字元都會轉換成小寫字元。

請參閱

toUpperCase()方法 
AS3 function toUpperCase():String

語言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

會傳回此字串的副本,其中所有小寫字元都會轉換成大寫字元。 不會修改原始的字串。

此方法會轉換具有 Unicode 大寫字元對等的所有字元 (不僅只是 a-z):

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

傳回值
String — 此字串的副本,其中所有小寫字元都會轉換成大寫字元。

請參閱

valueOf()方法 
AS3 function valueOf():String

語言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

會傳回 String 實體的基本值。 此方法的設計目的,是要將 String 物件轉換成基本字串值。 由於 Flash Player 會自動在必要時呼叫 valueOf(),所以您幾乎不需要明確呼叫這個方法。

傳回值
String — 字串的值。
範例 如何使用範例
StringExample.as

下列範例會使用 StringExample 和 StringHelper 類別,說明 String 類別之各種方法的使用方式。 這是透過下列步驟完成:
  1. StringExample 的建構函式會宣告許多區域 String 實體,而這些實體是以各種字串和新的 StringHelper 物件來初始化。
  2. StringHelper 類別具有下列方法:
    • replace():呼叫 String 的 split()join() 方法,移除搭配新字串傳入之字串的子字串。
    • trim():使用傳入的字串呼叫 trimBack()trimFront(),並傳回更新的字串。
    • trimFront():以遞迴方式移除符合 char 參數的所有字元,從字串的前面開始處理到結尾,直到字串中的第一個字元不符合 char 為止,然後傳回更新的字串。
    • trimBack():以遞迴方式移除符合 char 參數的所有字元,從字串的結尾開始往回處理,直到字串中的最後一個字元不符合 char 為止,然後傳回更新的字串。
    • stringToCharacter():會傳回傳遞給此方法之字串中的第一個字元。
  3. 然後會使用宣告的字串變數來產生三個字串,包含用來產生第二個字串的 replace() 方法呼叫以及用來產生第三個字串的 trim()
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);
    }
}




 

有新的意見加入至這個頁面時,傳送電子郵件給我 | 意見報告

目前頁面: http://livedocs.adobe.com/flash/9.0_tw/ActionScriptLangRefV3/String.html