首页 > 试题广场 > 替换空格
[编程题]替换空格
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
推荐
//思路
//1:从前往后插入,这样移动·的次数多不建议
//2:从后往前插入

class Solution {
public:
void replaceSpace(char *str,int length) {
        //遍历一边字符串找出空格的数量
        if(str==NULL||length<0)
            return ;
        int i=0;
        int oldnumber=0;//记录以前的长度
        int replacenumber=0;//记录空格的数量
        while(str[i]!='\0')
            {
               oldnumber++;
               if(str[i]==' ')
                   {
                     replacenumber++;
                   }
                  i++; 
            }
        int newlength=oldnumber+replacenumber*2;//插入后的长度
        if(newlength>length)//如果计算后的长度大于总长度就无法插入
            return ;
        int pOldlength=oldnumber; //注意不要减一因为隐藏个‘\0’也要算里
        int pNewlength=newlength;
        while(pOldlength>=0&&pNewlength>pOldlength)//放字符
            {
              if(str[pOldlength]==' ') //碰到空格就替换
                  {
                     str[pNewlength--]='0';
                     str[pNewlength--]='2';
                     str[pNewlength--]='%';
                     
                  }
               else //不是空格就把pOldlength指向的字符装入pNewlength指向的位置
               {
                    str[pNewlength--]=str[pOldlength];
                   
               }
             pOldlength--; //不管是if还是elsr都要把pOldlength前移
             
           }
        

}
};
编辑于 2015-12-07 18:51:44 回复(252)
function replaceSpace(str)
{
    var newStr = str.replace(/\s/g,"%20");
    return newStr;
}

用正则表达式 /\s/g 全局匹配str字符串中的空格,再用replace方法替换掉匹配到的空格
发表于 2019-07-17 11:27:42 回复(0)
正则全局替换
发表于 2019-07-16 00:05:46 回复(0)
//replace函数,正则表达式,完美解决。
var replaceSpace = function(str) {
var s = str.replace(/\s/g, "%20")
return s
}

——————————————————————————
不用正则和replace函数,原生的js也可以
var replaceSpace = function(str) {
    var result = ""
    for (var i = 0; i < str.length; i++) {
      var s = str[i]
      if(s == " ") {
          s = "%20"
      }
        result += s
    }
     return result
}

编辑于 2019-07-12 10:54:34 回复(0)


//方法一: function replaceSpace(str)
{    if(str==null){ return null  }  else{ let newString=''  for(let i=0;i<str.length;i++){ if(str[i]==' '){
                newString+='%20'  }else{
                newString+=str[i]
            }
        } return newString;  }
} //方法二: function replaceSpace(str)
{  if(str==null){ return null  }else{ while(str.indexOf(" ")!=-1){
           str=str.replace(" ",'%20')
       } return str;  }
}

编辑于 2019-07-12 09:20:07 回复(0)
function replaceSpace(str) {
  return str.replace(/\s/g, '%20');
}
使用字符串 replace 方法,配合正则表达式
发表于 2019-07-08 23:06:51 回复(0)
function replaceSpace(str)
{
    return str.split(' ').join('%20')
}
虽然是使用的js自带函数,但是思路是通过将字符串按照空格分割成数组,在每一个数组中间插入替换字符即可。
发表于 2019-07-04 11:04:53 回复(0)
JavaScript------利用正则表达式匹配空格
function replaceSpace(str)
{
    var reg = / \ s / g;
    return str.replace(reg,'%20');
}

发表于 2019-05-16 22:32:03 回复(0)

JavaScript

方法:正则表达式

function  replaceSpace(str) { 
    return str.replace(/ /g,"%20");
}

编辑于 2019-05-07 15:01:49 回复(0)
function replaceSpace(str) {  
return str.replace(/\s/g,"%20"); }
编辑于 2019-05-05 23:48:41 回复(0)
function replaceSpace(str)
{
    return str.split(" ").join("%20");
}
编辑于 2019-04-03 16:27:23 回复(0)
function replaceSpace(str)
{
    var result = "";
    for(var i = 0; i < str.length; i++){
        if(str[i] == " "){
            result += "%20";
        }
        else{
            result += str[i];
        }
    }
    return result;
}
字符串是不可以被改变的,将它一个个地给一个新的字符串,当遇到空格时,给指定的字符串。
发表于 2019-03-30 15:34:25 回复(0)
return str.replace(/\s/g,'%20');

发表于 2019-03-29 16:32:41 回复(2)
function replaceSpace(str)
{
    // write code here
    var regex = /\s/g;
    return str.replace(regex, '%20')
}
首先想到的是正则表达式,空格用/\s/表示,然后将空格替换为一个模式,想到replace方法(即String.prototype.replace()方法)。
发表于 2019-03-23 15:08:47 回复(0)
function replaceSpace(str)
{
    return str.split(" ").join("%20");
}
字符串分割成数组,原来字符串的空格在数组中变成了“,”  再使用join把逗号替换成“%20”
发表于 2019-03-12 14:48:32 回复(0)
用split(" ")把字符串分开,放入数组,然后把数组中的单词取出来用%20拼接
编辑于 2019-03-05 20:47:57 回复(0)

function replaceSpace(str)
{
    let arr = str.split('');
    for(i=0;i<arr.length;i++){
        if(arr[i]== ' '){
            arr[i] = '%20';
        }
    }
    return arr.join('');
}

发表于 2019-02-22 09:56:06 回复(0)
js的比较少,也不知道这样写有没有漏洞
function replaceSpace(str)
{
      //return str.replace(/ /g,'%20')
    var need = ''
  var arr = str.split('')
  arr.forEach((item)=>{
    if(item === ' '){
        need+='%20'
    } else {
      need+=item
    }
  })
  return need
}
发表于 2019-02-13 15:20:38 回复(0)
先分割为字符串数组,再使用'%20'连接成字符串。
一行搞定,hiahia!
function replaceSpace(str)
{
    // write code here
    return str.split(' ').join('%20');
}

发表于 2019-01-06 21:46:26 回复(0)
最简单的思路有两个:
方法一:使用js中的Global方法encodeURL()之间对字符串进行编码,由于空格是特殊字符,正好使用这个方法将空格转换成%20
function replaceSpace(str){
return encodeURI(str)
}
方法二:使用正则表达式全局匹配和字符串的replace方法将空格转换成%20
function replaceSpace(str){
return str.replace(/ /g,'20%')
}
发表于 2018-12-25 20:50:49 回复(0)