12.8.每次只读取一个字符

问题
我想每次只读取字符串中的一个字符
解决办法
在for语句中使用String.charAt( )方法,也可以用String.split( )方法,以空字符串作为分隔符把所有的字符分离出来作为数组,然后再用for语句遍历数组。
讨论
最简单的方法就是在for循环中通过字符串的字符下标依次读取每个字符,下标范围为0到string.length-1,使用charAt( )方法即可读取字符进行处理。
+展开
-ActionScript
var example:String = "a string";
//循环遍历字符串中的每个字符
for ( var i:int = 0; i < example.length; i++ ) {
/* 每次输出一个字符:
a
s
t
r
i
n
g
*/

trace( example.charAt( i ) );
}

使用split( ) 方法也可以达到同样的效果,这里我们使用空串作为split( ) 方法的分隔符参数。
+展开
-ActionScript
var example:String = "a string";
var characters:Array = example.split( "" );
for ( var i:int = 0; i < characters.length; i++ ) {
/* a
s
t
r
i
n
g
*/

trace( characters[i] );
}

两种方法都可以,不过如果你想要把字符排序一下的话最好用split方法,charAt( ) 方法就没那么容易做到了:
+展开
-ActionScript
var example:String = "a string";
var characters:Array = example.split( "" );
//对字符数组进行排序
characters.sort( );
for ( var i:int = 0; i < characters.length; i++) {
/* 显示:
a
g
i
n
r
s
t
*/

trace( characters[i] );
}

如果想删除某些字符,split方法也比charAt()容易做到:
+展开
-ActionScript
var example:String = "a string";
var characters:Array = example.split( "" );
for ( var i:Number = 0; i < characters.length; i++ ) {
// 删除所有“r”元素Remove all "r" elements from the array. Be sure to decrement i if an
// element is removed; otherwise, the next element is improperly skipped.
if ( characters[i] == "r") {
characters.splice( i, 1 );
i--;
}
}
// 显示: a sting
trace( characters.join( "" ) );

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


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