ActionScript编程提取子字符串
作用:
从字符串中提取指定范围的子字符串。
说明:
String类的substring()、substr()和slice()方法都会返回子字符串值,而不会影响原有字符串。这3个方法的唯一区别在于其所接受的参数不同。
substring()方法返回一个子字符串,其中包含从指定的起始索引一直到结束索引的所有字符,该方法的一般形式如下所示。
String.substring(startIndex,endIndex);
substring()方法可以接受以上两个参数,其详细介绍如下所示。
●startIndex 一个整数,指定要提取的子字符串的第一个字符位置,其有
效值的范围从0到String.length。如果startIndex参数是一个负值,则从
索引0开始。
●endIndex 一个整数,它比所提取的子字符串中的最后一个字符的索引
大1,其有效范围从0到String.length,默认为允许的最大索引值。需
要注意的是,endIndex处的字符不包含在子字符串中。如果省略该参数,
则使用String.length;如果该参数是一个负值,则结束索引为0。
返回一个空字符串;如果
在执行函数之前会自动交换参数。原始字符串保持不变。
substr()方法返回一个子字符串,该子字符串是从指定的起始索引位置开始,按照指定的长度截取所得的。该方法的一般形式如下所示。
String.substr(startIndex,length);
substr()方法可以接受以上两个参数,其详细介绍如下所示。
●startIndex 一个整数,指定子字符串第一个字符的索引位置。如果该参
数是一个负值,则起始索引从字符串的末尾开始确定,其中-1表示最后
一个字符;-2表示倒数第二个字符等。
length 指定子字符串要提取的字符数,默认值为所允许的最大值。如果未指定length参数,则子字符串包含从起始索引位置到字符串末尾的
所有字符。
slice()方法与substring()方法接受相同的参数,不同的是,slice()方法可接受startIndex和endIndex为负值,并把负值视为从字符串的末尾向前开始。如果指定的startIndex参数等于或大于endIndex参数,则slice()方法会返回一个空字符串。
示例:
根据上面所讲解的方法,从str字符串中提取指定的子字符串,如下所示。
var str:String = "Congratulations";
trace(str.substring(0)); //输出Congratulations
trace(str.slice(0)); //输出Congratulations
trace(str.substring(-5,-1)); //输出空字符串
trace(str.slice(-5,-1)); //输出tion
trace(str.substring(1,5)); //输出ongr
trace(str.slice(1,5)); //输出ongr
trace(str.substr(0)); //输出Congratulations
trace(str.substr(0,5)); //输出Congr
trace(str.substr(5,5)); //输出atula
trace(str.substr(-5)); //输出tions
trace(str.substr(-1,5)); //输出s
通常是结合indexOf()和lastIndexOf()方法来使用子字符串提取方法。可以使用indexOf()和lastIndexOf()方法搜索字符串内的子字符串。然后,使用子字符串提取方法以取得该子字符串。例如,从图片的完整名称中分别提取图片名称和图片格式,如下所示。
字符串长度截取var str:String = "桂林山水.jpg";
var index:int = str.lastIndexOf(".");
var filename:String = str.substring(0,index)
trace("图片的名称:" + filename);
var format:String = str.slice(index+1)
trace("图片的格式:" + format);
/*输出:
图片的名称:桂林风景
图片的格式:jpg*/
在上面的示例中,首先使用indexOf()方法获取点号的索引位置。然后,使用substring()方法根据该索引值提取点号前面的子字符串,即图片的名称;使用slice()方法提取点号后面的所有字符,即图片的格式。
如果上面的示例中不包含有点号,Flash则会输出无效结果。此时可以与if语句结合使用,判断字符串中是否包含有点号,如下所示。
var str:String = "桂林山水.jpg";
var filename:String;
var format:String;
var index:int = str.lastIndexOf(".");
if (index != -1){ //判断字符串中是否包含有点号
filename = str.substring(0,index);
format = str.slice(index + 1);
}else{
filename = str;
format = "";
}
trace("图片的名称:" + filename);
trace("图片的格式:" + format);
/*输出:
图片的名称:桂林山水
图片的格式:jpg*/
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论