请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
输入:s = "We are happy."
输出:"We%20are%20happy."
- 使用replace正则匹配
var replaceSpace = function(s) {
return s.replace(/\s/g,'%20');
};
- 使用split和数组的join方法
var replaceSpace = function(s) {
return s.split(' ').join('%20');
};
- replaceAll方法
var replaceSpace = function(s) {
return s.replaceAll(' ', '%20')
};
- 原地替换
**
* @param {
string} s
* @return {
string}
*/
var replaceSpace = function(s) {
if(s.length === 0){
return "";
}
let spaceNum = 0;
for(let i = 0 ; i < s.length; i++){
if(s[i] === ' '){
spaceNum++;
}
}
// 将字符串转为数组
const sArr = s.split('');
// 扩充数组长度 长度不够时会自动增加
let newTempLength = s.length + 2 * spaceNum;
for(let i = sArr.length-1 , j = newTempLength-1; i >= 0; i--,j--){
if(sArr[i] != ' '){
sArr[j] = sArr[i];
} else {
sArr[j] = '0';
sArr[j-1] = '2';
sArr[j-2] = '%';
j = j - 2;
}
}
// 将数组变为字符串
return sArr.join('');
};