请实现一个函数,把字符串 s
中的每个空格替换成"%20"。
示例 1:
输入:s = "We are happy."
输出:"We%20are%20happy."
1.直接遍历字符串,遇到空格用"%20"代替即可
时间复杂度:O(n)
空间复杂度:O(n)
/*1.遍历字符串,遇到空格用%20代替即可*/
func replaceSpace(s string) string {
var str string
for _,v := range s {
if v == ‘ ‘{
str += "%20"
}else{ //注意类型转换
str += string(v)
}
}
return str
}
2.使用golang的库函数一行搞定
func Replace(s, old, new string, n int) string
返回将s中前n个不重叠old子串都替换为new的新字符串,如果n<0会替换所有old子串。
/*2.用golang的库函数*/
func replaceSpace(s string) string {
return strings.Replace(s," ","%20",-1)
}
3.使用golang中strings包中的Split方法对字符串以" "进行切分,再用Join函数以"%20"进行拼接
func Join(a []string, sep string) string
将一系列字符串连接为一个字符串,之间用sep来分隔。
/*3.以空格为切分 并用"%20" join*/
func replaceSpace(s string) string {
return strings.Join(strings.Split(s, " "), "%20")
}
/**
* @param {string} s
* @return {string}
*/
var replaceSpace = function(s) {
if(s.length ===0){
return ""
}
return s.split(‘ ‘).join("%20");
};
使用正则表达式进行匹配
str.replace(regexp|substr, newSubStr|function)
这里仅第一个substr字符串就会被newSubStr替换,所以采用regexp正则替换
/*3.正则替换*/
var replaceSpace = function(s) {
return s.replace(/[ ]/g,"%20") /* /[ ]/表示" "需要替换,/g表示全局替换 */
}
原文:https://www.cnblogs.com/zmk-c/p/14594351.html