包 | 顶级 |
类 | 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 | ||
返回位于指定索引位置处的字符的数值 Unicode 字符代码。 | String | ||
在 String 对象末尾追加补充参数(如果需要,将它们转换为字符串)并返回结果字符串。 | String | ||
[静态]
返回一个字符串,该字符串由参数中的 Unicode 字符代码所表示的字符组成。 | String | ||
表示对象是否已经定义了指定的属性。 | Object | ||
搜索字符串,并返回在调用字符串内的 startIndex 位置或在该位置之后找到的第一个 val 匹配项的位置。 | String | ||
表示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | ||
从右向左搜索字符串,并返回在 startIndex 之前找到的最后一个 val 匹配项的索引。 | String | ||
比较两个或更多个字符串的排序顺序,并返回整数形式的比较结果。 | String | ||
将指定的 pattern 与字符串匹配。 | String | ||
表示指定的属性是否存在、是否可枚举。 | Object | ||
对字符串匹配指定模式并返回一个新字符串,其中的第一个模式匹配项被替换为 repl 所指定的内容。 | String | ||
搜索指定的 pattern 并返回第一个匹配子字符串的索引。 | String | ||
设置循环操作动态属性的可用性。 | Object | ||
返回一个字符串,该字符串包括从 startIndex 字符一直到 endIndex 字符(但不包括该字符)之间的所有字符。 | String | ||
将 String 对象拆分为一个子字符串数组,方法是在所有出现指定 delimiter 参数的位置进行拆分。 | 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
之间的数字,则返回一个空字符串。
此方法与 String.charCodeAt()
类似,所不同的是它返回的值是一个字符,而不是 16 位整数字符代码。
参数
index:Number (default = 0 ) — 一个整数,指定字符在字符串中的位置。第一个字符由 0 表示,最后一个字符由 my_str.length - 1 表示。
|
String — 指定索引处的字符。或者,如果指定的索引不在该字符串的索引范围内,则为一个空字符串。
|
相关 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
。
此方法与 String.charAt()
类似,所不同的是它返回的值是 16 位整型字符代码,而不是实际的字符。
参数
index:Number (default = 0 ) — 一个整数,指定字符在字符串中的位置。第一个字符由 0 表示,最后一个字符由 my_str.length - 1 表示。
|
Number — 指定索引处的字符的 Unicode 字符代码。或者,如果索引不在此字符串的索引范围内,则为 NaN 。
Unicode 字符数据库规范中对 Unicode 值进行了定义。 |
相关 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 开始,这意味着字符串的第一个字符位于索引 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.
在下面的示例中,替换“sh”(区分大小写)的所有实例,这是因为在正则表达式中设置了 g
(全局)标志:
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.
在下面的示例中,替换“sh”的所有实例,这是因为在正则表达式中设置了 g
(全局)标志,并且匹配时不 区分大小写,因为设置了 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() 方法,并使用生成的字符串作为 pattern 来执行 replace() 方法。
| |||||||||||||||
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 ) — 片段起始点的从 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 |
将 String 对象拆分为一个子字符串数组,方法是在所有出现指定 delimiter
参数的位置进行拆分。
如果 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 字符数据库规范中对这些条件映射进行了定义。
返回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 字符数据库规范中对这些条件映射进行了定义。
返回String — 该字符串的一个副本,其中的所有小写字符均转换为大写字符。
|
相关 API 元素
valueOf | () | 方法 |
- StringExample 的构造函数声明多个局部 String 实例,这些实例可使用不同字符串和一个新的 StringHelper 对象初始化。
- StringHelper 类具有下列方法:
replace()
:调用 String 的split()
和join()
方法,以删除用新字符串传入的字符串的一个子字符串。trim()
:使用传入的字符串调用trimBack()
和trimFront()
,并返回更新后的字符串。trimFront()
:以递归方式删除所有与char
参数匹配的字符,从字符串的开头开始向后删除,直到字符串中第一个字符与char
不匹配为止,并返回更新后的字符串。trimBack()
:以递归方式删除所有与char
参数匹配的字符,从字符串的末尾开始向前删除,直到字符串中最后一个字符与char
不匹配为止,并返回更新后的字符串。stringToCharacter()
:返回传入字符串的第一个字符。
- 然后,使用声明的字符串变量生成了 3 个字符串,其中调用
replace()
方法生成第二个字符串,调用trim()
生成第 3 个字符串。
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, 11:04 AM Z