请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。给定的字符串长度不超过100。保证字符串中的字符为大写英文字母、小写英文字母和空格中的一种。
方法一:暴力解法
 1 /**
 2  * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 3  *
 4  * 
 5  * @param s string字符串 
 6  * @return string字符串
 7  */
 8 function replaceSpace( s ) {
 9     // write code here
10     let res ='';
11     for(let i = 0;i<s.length;i++){
12         if(s[i]===' '){
13             res += '%20';
14         }else{
15             res+=s[i];
16         }
17     }
18     return res;
19 }
20 module.exports = {
21     replaceSpace : replaceSpace
22 };

 方法二:正则表达式

 1 /**
 2  * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 3  *
 4  * 
 5  * @param s string字符串 
 6  * @return string字符串
 7  */
 8 function replaceSpace( s ) {
 9     // write code here
10     let reg = new RegExp(' ','g');
11     return s.replace(reg,'%20');
12 }
13 module.exports = {
14     replaceSpace : replaceSpace
15 };

方法三:split+join

  • split:split()方法使用指定的分隔符字符串将一个String对象分割成子字符串数组,以一个指定的分割字串来决定每个拆分的位置
  • join:join()方法将一个数组(或一个类数组对象)的所有元素连接成一个字符串并返回这个字符串。如果数组只有一个项目,那么将返回该项目而不使用分隔符
 1 /**
 2  * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 3  *
 4  * 
 5  * @param s string字符串 
 6  * @return string字符串
 7  */
 8 function replaceSpace( s ) {
 9     // write code here
10     return s.split(' ').join('%20');
11 }
12 module.exports = {
13     replaceSpace : replaceSpace
14 };

 方法四:扩展运算符+map

 1 /**
 2  * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 3  *
 4  * 
 5  * @param s string字符串 
 6  * @return string字符串
 7  */
 8 function replaceSpace( s ) {
 9     // write code here
10     let arr = [...s].map(item =>{
11         return item === ' ' ? '%20' : item;
12     });
13     return arr.join('');
14 }
15 module.exports = {
16     replaceSpace : replaceSpace
17 };