题目描述
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
代码:
蠢方法,直接使用StringBuilder 遍历遇到空格,直接append %20 ,遍历结束,即完成
public class Solution {
public String replaceSpace(StringBuffer str) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i) == ' ') {
sb.append("%20");
} else {
sb.append(str.charAt(i));
}
}
return new String(sb);
}
}
代码
先判断出字符串中有多少空格,构造新字符串
string replaceSpace(string s) {
int count = 0, len = s.size();
for (char c : s) {
if (c == ' ') {
count += 1;
}
}
s.resize(len + 2 * count);
for (int i = len - 1, j = s.size() - 1; i < j; i--, j--) {
if (s[i] != ' ') {
s[j] = s[i];
} else {
s[j] = '0';
s[j - 1] = '2';
s[j - 2] = '%';
j -= 2;
}
}
return s;
}