12.10.修正空格符

问题
我想修正字符串首尾的空格符。
解决办法
使用自定义类方法ascb.util.StringUtilities.trim( ),另外,如果你使用Flex 2 framework,则可以使用mx.utils.StringUtil.trim( )静态方法。
讨论
字符串首尾的空格符总是让人很郁闷,一般我们都需要处理掉。ActionScript 并没有提供现成的trim( ) 实现,因此你必须自己实现了。

解决步骤如下:
把字符串分隔为字符数组。
删除开始部分的空格知道不是空格位置(tab, form feed, carriage return, newline, or space).
移除数组末尾的空格。
使用join( )把字符数组连成新的字符串。

ascb.util.StringUtilities.trim( )方法正式按照上面的步骤进行处理的,代码定义如下,这里还定义了一个判断字符是否为空格的方法isWhitespace( ):
+展开
-ActionScript
// 如果字符为空格则返回true
public static function isWhitespace( ch:String ):Boolean {
return ch == '\r' ||
ch == '\n' ||
ch == '\f' ||
ch == '\t' ||
ch == ' ';
}
public static function trim( original:String ):String {
var characters:Array = original.split( "" );
for ( var i:int = 0; i < characters.length; i++ ) {
if ( isWhitespace( characters[i] ) ) {
characters.splice( i, 1 );
i--;
else {
break;
}
}
for ( i = characters.length - 1; i >= 0; i-- ) {
if ( isWhitespace( characters[i] ) ) {
characters.splice( i, 1 );
else {
break;
}
}
return characters.join("");
}

下面的例子演示了trim( )方法的使用:
+展开
-ActionScript
var example:String = "\n\r\f\ta string\t\t\n\n";
/* 调用trim( )方法之前显示如下:
this string value is:
a string
<end>
*/

trace( "this string value is: " + example + "<end>" );
example = StringUtilities.trim( example );
//显示: this string value is: a string<end>
trace( "this string value is: " + example + "<end>" );
Flex 2 framework 实现了trim方法,入下面的例子:
// 显示: a string<end>
trace( StringUtil.trim( "\n \r\ta string\t\t\n\n" ) + "<end>" );

加支付宝好友偷能量挖...


评论(0)网络
阅读(83)喜欢(0)flash/flex/fcs/AIR