描述
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
示例1
输入: “We Are Happy”
返回值: “We%20Are%20Happy”
代码1:
先计算出空格数量count,设计s.length()+count*2长度的字符数组保存结果,剑指offer书上讲可以从后往前遍历填充数据,减少字符移动,这里直接从前到后遍历做了。。。
import java.util.*;
public class Solution {
public String replaceSpace (String s) {
int length = s.length();
int count = 0;
for (int i=0; i<length; i++) {
if (s.charAt(i) == ' ') {
count++;
}
}
char [] array = new char[length + count*2];
int index = 0;
for (int i=0; i<length; i++) {
if (s.charAt(i) == ' ') {
array[index++] = '%';
array[index++] = '2';
array[index++] = '0';
} else {
array[index++] = s.charAt(i);
}
}
return new String(array);
}
}
代码2:
StringBuffer 内部实现加了同步锁,线程安全
import java.util.*;
public class Solution {
public String replaceSpace (String s) {
StringBuffer res = new StringBuffer();
for (int i=0; i<s.length(); i++) {
if (s.charAt(i) == ' ') {
res.append("%20");
} else {
res.append(s.charAt(i));
}
}
return res.toString();
}
}