package
{
import flash.display.Sprite;
/**
* 题目 请实现一个函数,把字符串中的每个空格替换成“%20”,例如“We are happy”,则输出 “We%20are%20happy”
* */
public class Main extends Sprite
{
public function Main()
{
var testStr:String = "We are happy";
trace(replaceBlank(testStr,"%20"));
}
private function replaceBlank(str:String,replaceStr:String):String{
var strArr:Array = [];
strArr = str.split("");
var blankCount:uint = 0;//空格技术
var pointPre:int;
var pointLast:int;
for(var i:int=0;i<strArr.length;i++){
if(strArr[i] == " ")
blankCount++;
}
pointPre = strArr.length-1;
pointLast = pointPre + blankCount*(replaceStr.length-1);
while(pointPre>=0){
if(strArr[pointPre] == " "){
for(var j:int = replaceStr.length-1; j>=0; j--){
strArr[pointLast] = replaceStr.charAt(j);
pointLast--;
}
pointPre--;
continue;
}
strArr[pointLast] = strArr[pointPre];
pointPre--;
pointLast--;
}
return strArr.join("");
}
}
}