替换空格
请实现一个函数,将一个字符串的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy.
方法一:C++实现
void replaceSpace(string str)
{
//首先要新建一个空的字符串,之所以新建空的,不能在原有的字符串上替换,是因为空格是一个字符,我们要替换为“%20”这个字符串,很明显字符串的位置不能直接占据单个字符的位置
string s="";
//遍历整个字符串
for(int i=0;i<str.length;i++)
{
//如果此字符不为空,直接将其加在新的字符串上,否则就用“%20”去加在新串上
if(str[i]!==" ")
{
s[i]+=str[i];
}else{
s[i]+="%20";
}
}
return s;
};
方法二:JS实现
1、直接用空格将字符串切割为一个字符串数组,再用%20进行连接。
function replaceSpace(str)
{
return str.split(' ').join("%20");
}
split用法讲解: 实例
把一个字符串分隔成字符串数组:
var str=“we are happy”
var s=str.split(" ")
str输出数组值得结果:
“we”,“are”,“happy”
join用法讲解: 定义和用法
join()
方法将数组作为字符串返回
元素将由指定的分隔符分隔。默认分隔符是逗号(,)。
注释:join()
方法不会改变原始数组
实例:
将数组元素转化为字符串:
var s=[“we”,“are”,“happy”]
var str=s.join(“%20”)
str输出的结果值为
we%20are%20happy
2、用正则表达式找到所有空格一次替换
function replaceSpace(str){
return str.replace(/\s/g,'%20');
}
\s
:匹配任何空白字符,包括空格,制表符,换页符等等。g
:global-全局匹配,查找所有的匹配项。
总结
是不是发现js比c++简单了很多,小白我当初是先用c++来学习的,发现c++真的很考验逻辑书写,需要程序员自己造轮子,而js就可以调用库函数,就只需要掌握函数的用法即可,不过感兴趣的可以看源码也是比较好的。