题目
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy
思路
不考虑现有的replace方法的话,
两个问题:
- 在现有字符串上替换还是另起一个
- 从前往后插入还是从后往前,从前往后移动次数多
replace和replaceAll区别:
replace(CharSequence target,CharSequence replacement)
replaceAll(String regex,String replacement)
public class Solution {
public String replaceSpace(StringBuffer str) {
return str.toString().replace(" ", "%20");;
}
}
不使用replace方法的话:
public String replaceSpace(StringBuffer str) {
if (null == str) {
return null;
}
StringBuffer sb = new StringBuffer();
for (int i = 0; i < str.toString().length(); i++) {
char temp = str.charAt(i);
// 这里要注意的是char类型的temp不能直接和字符串类型的" "比较
if (" ".equals(String.valueOf(temp))) {
sb.append("%20");
} else {
sb.append(temp);
}
}
return sb.toString();
}