题目描述:
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为 We Are Happy.则经过替换之后的字符串为 We%20Are%20Happy。
解题思路
考虑要点:
- 在原有字符串替换,或是创建新字符串;
- 从前往后还是从后往前。
选择在原字符串替换,从后往前替换。因为从前往后替换要考虑 index 后移的问题。
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();
}
}
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于