题目
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
解题思路
1、现将字符串遍历一遍,然后每遇到一个空格就将记录一下空格数量,最后将整个字符串长度加长num*2个,然后将字符串逆向复制,每次遇到空格就将其替换;
2、也可以直接调用字符串替换函数replaceAll(),将空格进行替换。
代码
代码一:
public class Solution {
public String replaceSpace(StringBuffer str) {
int spacenum = 0;
for(int i=0;i<str.length();i++){
if(str.charAt(i)==' ')
spacenum++;
}
int indexold = str.length()-1;
int newlength = str.length() + spacenum*2;
int indexnew = newlength-1;
str.setLength(newlength);
for(;indexold>=0 && indexold<newlength;--indexold){
if(str.charAt(indexold) == ' '){
str.setCharAt(indexnew--, '0');
str.setCharAt(indexnew--, '2');
str.setCharAt(indexnew--, '%');
}else{
str.setCharAt(indexnew--, str.charAt(indexold));
}
}
return str.toString();
}
}
代码二:
public class Solution {
public String replaceSpace(StringBuffer str) {
return str.toString().replaceAll(" ","%20");
}
}