题目描述
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
解题思路
- 直接使用Java API,使用String的replaceAll()方法。
- 首先遍历字符串中的空格,然后新建一个char数组,大小时原来的字符串的长度 + 2 * 空格数,然后,从后往前遍历字符串,如果遇到非空格字符,则将其放入char数组最后未填充的位置,遇到空格则填充"%20"。
实现
- 调用Java API的实现
public class Solution {
public String replaceSpace(StringBuffer str) {
return str.toString().replaceAll(" ","%20");
}
}
- 第二种思路
public class Solution {
public String replaceSpace(StringBuffer str) {
int countSpace = 0;
for (int i = 0; i < str.length(); i++){
if (str.charAt(i) == ' ') countSpace++;
}
char[] chars = new char[str.length() + 2*countSpace];
int index = chars.length - 1;
for (int i = str.length() - 1; i >= 0; i--){
if(str.charAt(i) != ' '){
chars[index--] = str.charAt(i);
}else {
chars[index--] = '0';
chars[index--] = '2';
chars[index--] = '%';
}
}
return String.valueOf(chars);
}
}