请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
题目连接
解题思路:
‘%20’长度为3,‘空格’长度为1,相差2。
计算原来字符串的长度和空格个数,原长度加上 2*空格数 就是新字符串长度。
根据新长度new新字符串数组,遍历进行赋值。
public class Solution {
public String replaceSpace(StringBuffer str) {
String strTemp = str.toString();
char [] strArray = strTemp.toCharArray();
int len = 0;//空格数量
for (int i = 0; i < strArray.length; i++) {
if(strArray[i] == ' '){
len++;
}
}
int newLen = strArray.length + len*2;
char [] newStr = new char[newLen];
int j = 0;
for (int i = 0; i < newLen; i++) {
if(strArray[j] != ' '){
newStr[i] = strArray[j];
}
else{
newStr[i++] = '%';
newStr[i++] = '2';
newStr[i] = '0';
}
j++;
}
return new String(newStr); //字符串数组转换为字符串
}
}