![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/36f48807e5cb0820040b2483b3d42c94.png)
思路一:用String类中的replaceAll方法
class Solution {
public String replaceSpace(String s) {
return s.replaceAll(" ", "%20");
}
}
思路二:用两个字符数组来实现
- 统计一下空格的总数,计算出最终结果的字符串的长度
- 从前或者从后遍历,如果是空格,就换成“%20”,如果不是空格,就复制
class Solution {
public String replaceSpace(String s) {
char[] chars = s.toCharArray();
int num = 0;
for (char aChar : chars) {
if (aChar == ' ') {
num++;
}
}
char[] res = new char[s.length() + num * 2];
int j = res.length - 1;
for (int i = s.length() - 1; i >= 0; i--) {
if (chars[i] != ' ') {
res[j] = chars[i];
j--;
} else {
res[j] = '0';
res[j - 1] = '2';
res[j - 2] = '%';
j -= 3;
}
}
return new String(res);
}
}
思路三:用StringBuffer来实现
- 创建一个StringBuffer
- 遍历字符,如果是空格就在sb后面append“%20”
- 如果不是空格,就append这个字符就好
class Solution {
public String replaceSpace(String s) {
StringBuffer sb = new StringBuffer();
char c;
for (int i = 0; i < s.length(); i++) {
if ((c = s.charAt(i)) == ' ') {
sb.append("%20");
} else {
sb.append(c);
}
}
return sb.toString();
}
}