请实现一个函数,把字符串 s
中的每个空格替换成%20
。
示例 1:
输入:s = "We are happy."
输出:"We%20are%20happy."
限制:
0 <= s 的长度 <= 10000
思路
本题和之前在整串中寻找子串个数的想法大致相似,主要就是在字符串中找到空格的索引位置(index
),然后在index
这个地方,先删除该处的空格,再将%20
插入进去。然后继续设置index = index+1
,从新的index
开始寻找空格的位置,重复上述操作即可。
为了方便操作,我这里先将原来的String
转成了StringBuffer
,这样的话,操作完以后直接将最后的StringBuffer
转换到String就是我们的答案了。
【注】while
循环的控制条件应该是index>=0&&index<sBuffer.length()
,这里的右区间应该是StringBuffer
的长度,而不是原来String
的长度。因为原来String
的长度是不会变的,而StringBuffer
的长度是会随着添加%20
这些操作而增加的。
代码
public class Solution {
public String replaceSpace(String s) {
StringBuffer sBuffer = new StringBuffer(s);
String answear;
int index = 0;
while(index>=0&&index<sBuffer.length()) {
index = sBuffer.indexOf(" ", index);
if(index==-1) break;
sBuffer.deleteCharAt(index);
sBuffer.insert(index, "%20");
index+=1;
}
answear = sBuffer.toString();
return answear;
}
}