套件 | 最上層 |
類別 | public final class String |
繼承 | String Object |
執行階段版本: | Flash Player 9, AIR 1.0, Flash Lite 4 |
String()
函數,將任何物件的值轉換成 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
時,Flash 執行階段會強制將 undefined
轉型為 null
。因此,陳述式:
var s:String = undefined;會將值設定為
null
而非 undefined
。如果您需要使用 undefined
,請使用 String()
函數。
相關 API 元素
屬性 | 定義自 | ||
---|---|---|---|
constructor : Object
類別物件的參照或是特定物件實體的建構函數。 | Object | ||
length : int [唯讀]
指定的 String 物件中用來指定字元數目的整數。 | String |
方法 | 定義自 | ||
---|---|---|---|
會建立初始化為指定之字串的新 String 物件。 | String | ||
傳回位於 index 參數所指定之位置的字元。 | String | ||
傳回位於指定 index 之字元的數字 Unicode 字元碼。 | String | ||
會將所提供的引數附加至 String 物件的結尾,在必要時將這些引數轉換成字串,並傳回產生的字串。 | String | ||
[靜態]
會傳回參數中 Unicode 字元碼代表之字元所組成的字串。 | String | ||
指出物件是否有已定義的指定屬性。 | Object | ||
搜尋字串,並傳回在呼叫字串內 startIndex 或之後找到之第一個 val 的位置。 | String | ||
指出 Object 類別的實體是否位於指定為參數的物件原型鏈中。 | Object | ||
由右至左搜尋字串,並傳回在 startIndex 之前找到,最後出現之 val 的索引。 | String | ||
會比較兩個或更多字串的排序順序,並以整數形式傳回比較的結果。 | String | ||
根據字串比對指定的 pattern。 | String | ||
指出指定的屬性是否存在,以及是否可列舉。 | Object | ||
根據該字串比對指定的 pattern,並傳回新的字串,其中第一個符合的 pattern 會被 repl 指定的內容取代。 | String | ||
搜尋指定的 pattern,並傳回第一個相符子字串的索引。 | String | ||
為迴圈作業設定動態屬性的可用性。 | Object | ||
傳回字串,其中包含 startIndex 字元以及直到 endIndex 字元 (但不包括該字元) 的所有字元。 | String | ||
在所指定 delimiter 參數出現的位置進行分割,將 String 物件分成子字串的陣列。 | String | ||
傳回子字串,由從指定之 startIndex 開始並具有 len 指定之長度的字元組成。 | String | ||
傳回字串,由 startIndex 所指定的字元,以及直到 endIndex -1 的所有字元組成。 | String | ||
會傳回此字串的副本,其中所有大寫字元都會轉換成小寫字元。 | String | ||
傳回代表此物件的字串,根據地區特定慣例進行格式化。 | Object | ||
會傳回此字串的副本,其中所有小寫字元都會轉換成大寫字元。 | String | ||
會傳回此字串的副本,其中所有大寫字元都會轉換成小寫字元。 | String | ||
會傳回指定之物件的字串形式。 | Object | ||
會傳回此字串的副本,其中所有小寫字元都會轉換成大寫字元。 | String | ||
會傳回 String 實體的基本值。 | String |
length | 屬性 |
String | () | 建構函式 |
charAt | () | 方法 |
AS3 function charAt(index:Number = 0):String
執行階段版本: | Flash Player 9, AIR 1.0, Flash Lite 4 |
會傳回位於 index
參數所指定之位置中的字元。如果 index
不是介於 0 和 string.length - 1
之間的數字,便會傳回空字串。
除了傳回的值是字元而非 16 位元整數字元碼以外,這個方法和 String.charCodeAt()
非常類似。
參數
index:Number (default = 0 ) — 整數,指定字串中某個字元的位置。第一個字元會由 0 指出,而最後一個字元則由 my_str.length - 1 指出。
|
String — 位於指定之 index 的字元。或者,如果指定的索引在此字串索引的範圍以外,便會傳回空字串。
|
相關 API 元素
charCodeAt | () | 方法 |
AS3 function charCodeAt(index:Number = 0):Number
執行階段版本: | Flash Player 9, AIR 1.0, Flash Lite 4 |
會傳回位於指定 index
之字元的數字 Unicode 字元碼。如果 index
不是介於 0 和 string.length - 1
之間的數字,便會傳回 NaN
。
除了傳回的值是 16 位元整數字元碼而非實際字元以外,這個方法與 String.charAt()
非常類似。
參數
index:Number (default = 0 ) — 整數,指定字串中某個字元的位置。第一個字元會由 0, 指出,而最後一個字元則由 my_str.length - 1 指出。
|
Number — 位於指定 index 之字元的 Unicode 字元碼。或者,如果該索引在此字串的索引範圍之外,則為 NaN 。
Unicode 值定義於 Unicode Character Database 規格中。 |
相關 API 元素
concat | () | 方法 |
fromCharCode | () | 方法 |
indexOf | () | 方法 |
AS3 function indexOf(val:String, startIndex:Number = 0):int
執行階段版本: | Flash Player 9, AIR 1.0, Flash Lite 4 |
搜尋字串,並傳回在呼叫字串中 startIndex
處或之後找到 val
第一次出現的位置。這個索引是從零開始,表示字串的第一個字串會視為位於索引 0 而非索引 1。如果找不到 val
,此方法會傳回 -1。
參數
val:String — 要搜尋的子字串。
| |
startIndex:Number (default = 0 ) — 選擇性整數,指定搜尋的開始索引。
|
int — 指定之子字串第一次出現的索引或 -1 。
|
相關 API 元素
lastIndexOf | () | 方法 |
AS3 function lastIndexOf(val:String, startIndex:Number = 0x7FFFFFFF):int
執行階段版本: | Flash Player 9, AIR 1.0, Flash Lite 4 |
會由右至左搜尋字串,並傳回在 startIndex
之前找到,最後出現之 val
的索引。索引會從零開始,表示第一個字元會在索引 0,而最後一個字元則會在 string.length - 1
。如果找不到 val
,此方法會傳回 -1
。
參數
val:String — 要搜尋的字串。
| |
startIndex:Number (default = 0x7FFFFFFF ) — 選擇性的整數,指定要搜尋 val 的開始索引。預設值是索引可允許的最大值。如果沒有指定 startIndex ,搜尋便會從字串中的最後一個項目開始。
|
int — 指定之子字串最後出現的位置,若找不到則為 -1。
|
相關 API 元素
localeCompare | () | 方法 |
AS3 function localeCompare(other:String, ... values):int
執行階段版本: | Flash Lite 4, Flash Player 9, AIR 1.0 |
會比較兩個或更多字串的排序順序,並以整數形式傳回比較的結果。當此方法要以地區特定的方式處理比較作業時,ActionScript 3.0 實作並不會產生不同於其他字串比較的結果,例如相等 (==
) 或不相等 (!=
) 運算子。如果這些字串都相等,傳回值就是 0。如果原始字串值在 other
指定的字串值之前,傳回值便會是負整數,而其絕對值則代表分隔兩個字串值的字元數。如果原始字串值在 other
之後,傳回值便會是正整數,而其絕對值則代表分隔兩個字串值的字元數。
參數
other:String — 要加以比較的字串值。
| |
... values — 要加以比較的更多選擇性字串組。
|
int — 如果字串都相等,則值為 0。否則,如果原始字串優先於字串引數,便會是負整數;如果字串引數優先於原始字串,則會是正整數。在這兩種情況下,數字的絕對值都代表兩個字串之間的差異。
|
match | () | 方法 |
AS3 function match(pattern:*):Array
執行階段版本: | Flash Lite 4, Flash Player 9, AIR 1.0 |
會比對指定的 pattern
與字串。
參數
pattern:* — 要加以比對的樣式,可以是任何類型的物件,不過通常會是字串或規則運算式。如果 pattern 不是規則運算式或字串,此方法便會在執行前先將它轉換成字串。
|
Array — 字串陣列,它是由字串中符合指定之 pattern 的所有子字串所組成。
如果
當 |
相關 API 元素
replace | () | 方法 |
AS3 function replace(pattern:*, repl:Object):String
執行階段版本: | Flash Lite 4, Flash Player 9, AIR 1.0 |
會針對指定的 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 — 通常,這會是插入符合內容之位置的字串。不過,您也可以指定函數做為此參數。如果您指定函數,此函數傳回的字串便會插入符合內容的位置。
當您指定字串做為
例如,以下會說明 var str:String = "flip-flop"; var pattern:RegExp = /(\w+)-(\w+)/g; trace(str.replace(pattern, "$2-$1")); // flop-flip 當您指定某個函數做為
例如,請考慮下列範例: 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]; } 對 {"abc12", "abc", "12", 0, "abc12 def34"} 第二次時,此樣式符合子字串 {"def34", "def", "34", 6, "abc123 def34"} |
String — 產生的字串。請注意,來源字串會維持不變。
|
相關 API 元素
search | () | 方法 |
AS3 function search(pattern:*):int
執行階段版本: | Flash Lite 4, Flash Player 9, AIR 1.0 |
會搜尋指定的 pattern
,並傳回第一個相符之子字串的索引。如果沒有符合的子字串,此方法便會傳回 -1
。
參數
pattern:* — 要加以比對的樣式,可以是任何類型的物件,不過通常會是字串或規則運算式。如果 pattern 不是規則運算式或字串,此方法便會在執行前先將它轉換成字串。請注意,如果您指定規則運算式,此方法便會忽略規則運算式的全域旗標 ("g"),並忽略規則運算式的 lastIndex 屬性 (而且不會加以修改)。如果您傳遞未定義的值 (或是不傳遞任何值),此方法便會傳回 -1 。
|
int — 第一個相符之子字串的索引,若是沒有符合項目則為 -1 。請注意,字串索引是從零開始,字串的第一個字元會在索引 0,最後一個字元則會在 string.length - 1 。
|
相關 API 元素
slice | () | 方法 |
AS3 function slice(startIndex:Number = 0, endIndex:Number = 0x7fffffff):String
執行階段版本: | Flash Lite 4, Flash Player 9, AIR 1.0 |
會傳回一個字串,其中包含 startIndex
字元以後,直到 endIndex
字元 (但不包含此字元) 之前的所有字元。 不會修改原始 String 物件。 如果沒有指定 endIndex
參數,子字串的結尾就會是字串的結尾。 如果以 startIndex
為索引的字元與以 endIndex
為索引的字元相同或是在其右邊,則此方法會傳回空字串。
參數
startIndex:Number (default = 0 ) — 片段起點的索引 (從零開始)。如果 startIndex 是負值,便會由右至左建立片段,其中的 -1 是最後一個字元。
| |
endIndex:Number (default = 0x7fffffff ) — 整數,其值比片段的結束點索引值大 1。索引為 endIndex 參數之字元將不會包含在擷取出來的字串之內。 如果 endIndex 是負值,表示結束點將由字串的結尾推算回來,-1 代表最後一個字元。 預設值是索引可允許的最大值。 如果省略此參數,便會使用 String.length 。
|
String — 以指定之索引為基礎的子字串。
|
相關 API 元素
split | () | 方法 |
AS3 function split(delimiter:*, limit:Number = 0x7fffffff):Array
執行階段版本: | Flash Lite 4, Flash Player 9, AIR 1.0 |
會分割指定之 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 — 子字串的陣列。
|
相關 API 元素
substr | () | 方法 |
AS3 function substr(startIndex:Number = 0, len:Number = 0x7fffffff):String
執行階段版本: | Flash Lite 4, Flash Player 9, AIR 1.0 |
會傳回子字串,它所組成的字元是從指定的 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
執行階段版本: | Flash Lite 4, Flash Player 9, AIR 1.0 |
會傳回字串,它是由 startIndex
所指定,一直到 endIndex - 1
的所有字元所組成。 如果未指定 endIndex
,便會使用 String.length
。 如果 startIndex
的值與 endIndex
的值相等,則此方法會傳回一個空字串。 如果 startIndex
的值大於 endIndex
的值,便會在函數執行之前自動替換參數。 不會修改原始的字串。
參數
startIndex:Number (default = 0 ) — 整數,指定用來建立子字串之第一個字元的索引。 startIndex 的有效值是從 0 到 String.length 。 如果 startIndex 是負值,就會使用 0 。
| |
endIndex:Number (default = 0x7fffffff ) — 整數,其值比擷取字串中最後一個字元的索引大 1。 endIndex 的有效值是從 0 到 String.length 。 在子字串中不會包含位於 endIndex 的字元。 預設值是索引可允許的最大值。 如果省略此參數,便會使用 String.length 。 如果此參數是負值,便會使用 0 。
|
String — 以指定之參數為基礎的子字串。
|
toLocaleLowerCase | () | 方法 |
toLocaleUpperCase | () | 方法 |
toLowerCase | () | 方法 |
AS3 function toLowerCase():String
執行階段版本: | Flash Lite 4, Flash Player 9, AIR 1.0 |
會傳回此字串的副本,其中所有大寫字元都會轉換成小寫字元。 不會修改原始的字串。
此方法會轉換具有與 Unicode 小寫字元對等的所有字元 (不僅只是 A-Z):
var str:String = " JOSÉ BARÇA"; trace(str.toLowerCase()); // josé barça
這些大小寫定義於 Unicode Character Database 規格中。
傳回值String — 此字串的副本,其中所有大寫字元都會轉換成小寫字元。
|
相關 API 元素
toUpperCase | () | 方法 |
AS3 function toUpperCase():String
執行階段版本: | Flash Lite 4, Flash Player 9, AIR 1.0 |
會傳回此字串的副本,其中所有小寫字元都會轉換成大寫字元。 不會修改原始的字串。
此方法會轉換具有 Unicode 大寫字元對等的所有字元 (不僅只是 a-z):
var str:String = "José Barça"; trace(str.toUpperCase()); // JOSÉ BARÇA
這些大小寫定義於 Unicode Character Database 規格中。
傳回值String — 此字串的副本,其中所有小寫字元都會轉換成大寫字元。
|
相關 API 元素
valueOf | () | 方法 |
- StringExample 的建構函式會宣告許多區域 String 實體,而這些實體是以各種字串和新的 StringHelper 物件來初始化。
- StringHelper 類別具有下列方法:
replace()
:呼叫 String 的split()
和join()
方法,移除搭配新字串傳入之字串的子字串。trim()
:使用傳入的字串呼叫trimBack()
和trimFront()
,並傳回更新的字串。trimFront()
:以遞迴方式移除符合char
參數的所有字元,從字串的前面開始處理到結尾,直到字串中的第一個字元不符合char
為止,然後傳回更新的字串。trimBack()
:以遞迴方式移除符合char
參數的所有字元,從字串的結尾開始往回處理,直到字串中的最後一個字元不符合char
為止,然後傳回更新的字串。stringToCharacter()
:會傳回傳遞給此方法之字串中的第一個字元。
- 然後會使用宣告的字串變數來產生三個字串,包含用來產生第二個字串的
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); } }
Tue Jun 12 2018, 03:47 PM Z