題目:請實現(xiàn)一個函數(shù)狞玛,將一個字符串中的空格替換成“%20”类浪。例如喳逛,當字符串為We Are Happy.則經(jīng)過替換之后的字符串為We%20Are%20Happy邮偎。
思路:
1管跺、不能直接使用replace,為一個字符替換為三個字符會被覆蓋禾进;
2豁跑、從前往后會進行替換同樣會被覆蓋;
3泻云、采用從后往前艇拍,先記錄下一共有多少空格狐蜕,現(xiàn)在總長度為count*2+len;再進行替換卸夕。
源碼:
public static String replaceSpace(StringBuffer str) {
int count=0;
for(int i=0;i<str.length();i++) {
if(str.charAt(i)==' ')
count++;
}
int len=str.length();
int lenadd=count*2+len;
char[] ch =new char[lenadd];
for(int i=len-1,j=lenadd-1;i>=0&&j>=0; ) {
if(str.charAt(i)==' ')
{ch[j--]='0';
ch[j--]='2';
ch[j--]='%';
i--;
}
else {
ch[j--]=str.charAt(i);
i--;
}
}
String strnew=String.valueOf(ch);
return strnew;
}