题目:请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
思路:
1、不能直接使用replace,为一个字符替换为三个字符会被覆盖;
2、从前往后会进行替换同样会被覆盖;
3、采用从后往前,先记录下一共有多少空格,现在总长度为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;
}
网友评论