一、需求
- 请实现一个函数,把字符串
s
中的每个空格替换成"%20"。
二、遍历法
2,1 思路分析
- 新建字符串临时变量str和temp,str初始化为空串;
- 截取给定字符串s的每单个字串,若字串为空格,temp赋值为"%20",若不是,直接将str与temp拼接,保存到str中;
- 返回str;
2.2 代码实现
public String replaceSpace(String s) {int len = s.length();String str = "";String temp;for(int i = 0; i < len; i++) {temp = s.substring(i,i+1);if(temp.equals(" ")) {temp = "%20";}str += temp;}return str;}
2.3 复杂度分析
- 时间复杂度为O(n);
- 空间复杂度为O(1);
三、遍历法(优化)
3.1 思路分析
- 上述遍历法中,循环中‘+’号每次都会new一个StringBuilder对象,再调用append方法,会产生垃圾对象;
- 所以这里直接利用StringBuilder对象,来调用append方法。
3.2 代码实现
public String replaceSpace(String s) {StringBuilder str = new StringBuilder();for(Character c : s.toCharArray()) {if(c == ' ') {str.append("%20");} else {str.append(c);}}return str.toString();
}
3.3 复杂度分析
- 时间复杂度为O(n);
- 空间复杂度为O(1);
四、利用replace函数
public String replaceSpace(String s) {String string = s.replaceAll(" ", "%20");return string;
}