剑指 Offer 05. 替换空格
题目:
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
示例 1:
输入:s = “We are happy.”
输出:“We%20are%20happy.”
限制:
0 <= s 的长度 <= 10000
思路:
1.new 一个新的字符串:
看见这个结果,直接淘汰。应该是S一直在new,使用StringBuffer试试,结果和char数组是类似的。
2.new char数组,跟StringBuffer是类似的
3.正则表达式
各项的结果:
题解:
class Solution {
public String replaceSpace(String s) {
int count = 0;
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == ' ') {
count++;
}
}
char[] chars = new char[s.length() + count * 2];
int i = 0;
for (int j = 0; j < s.length(); j++,i++) {
if (s.charAt(j) == ' ') {
chars[i] = '%';
chars[i+1] = '2';
chars[i+2] = '0';
i += 2;
} else {
chars[i] = s.charAt(j);
}
}
return String.valueOf(chars);
}
}
class Solution {
public String replaceSpace(String s) {
StringBuffer newS = new StringBuffer();
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == ' ') {
newS.append("%20");
} else {
newS.append(s.charAt(i));
}
}
return newS.toString();
}
}