剑指 Offer 05. 替换空格
题目描述:
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
示例 1:
输入:s = "We are happy."
输出:"We%20are%20happy."
限制:
0 <= s 的长度 <= 10000
题解一: replaceAll
方法一:replaceAll
先来复习下replace:
js中有两种replace,第一种是无痕跳转,location.replace(url)
第二种则是用于字符串:string.replace(参数一,参数二)。意为用参数二替换参数一。
需要注意的是,replace在用的时候智能替换第一个字符:
var s = "We are happy."
var a = s.replace(" ", "%20");
console.log(a)
比如,这里用replace,只替换了第一个出现的空格。
这就不得不提到replaceAll了:它能够替换所有:
var s = "We are happy."
var a = s.replaceAll(" ", "%20");
console.log(a)
代码中为什么要单独拿出一个a?因为该方法返回一个新的字符串,该方法并不改变字符串本身。
完整题解:
var s = "We are happy."
var replaceSpace = function(s) {var a = s.replaceAll(" ", "%20")return a;
};
replaceSpace(s)
题解二:split与join
split() 方法用于把一个字符串分割成字符串数组。
join()方法:
console.log(arr)//原数组
console.log(arr.join())//逗号隔开
console.log(arr.join('-'))//分隔符隔开
join方法也是一样,返回字符串,但是不修改原数组。
在这个题目中,我们可以把字符串先变成数组,再利用join把在数组间隙添加想要添加的东西。
var s = "We are happy."
var a = s.split().join('%20')
console.log(a)
力扣题解:
var s = "We are happy."
var replaceSpace = function(s) {// var a = s.replaceAll(" ", "%20")// return a;return s.split(' ').join('%20')
};
replaceSpace(s)