题目

请实现一个函数,把字符串中的每个空格替换成”%20”。例如输入 “We are happy.”,输出”We%20are%20happy.”。

这道题是针对 C++ 出的,对于 Java来说相对简单,用一个 StringBuiler 或者 StringBuffer 就可以了。不过这两个之间有略微的差别,StringBuiler是非线程安全的,多线程环境下会出现问题,但效率更高,StringBuffer则是线程安全的,但是效率相对较低。这题不涉及多线程编程,因此用 StringBuiler 就可以了。代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public String replaceSpace(StringBuffer str) {
StringBuilder sb = new StringBuilder();
int i = 0;
while (i < str.length()) {
if (str.charAt(i) == ' '){
sb.append("%20");
} else {
sb.append(str.charAt(i));
}
i++;
}
return sb.toString();
}