【发布时间】:2015-01-14 22:28:04
【问题描述】:
这是我使用golang的第二天,我可能会问一个非常基本的问题:
我想替换字符串的一部分,这就是 strings.Replace 的好处:
func Replace(s, old, new string, n int) string
最后一个参数是old 被new 替换的次数 - 从字符串的开头开始。
有没有类似的从头开始的标准函数?
【问题讨论】:
这是我使用golang的第二天,我可能会问一个非常基本的问题:
我想替换字符串的一部分,这就是 strings.Replace 的好处:
func Replace(s, old, new string, n int) string
最后一个参数是old 被new 替换的次数 - 从字符串的开头开始。
有没有类似的从头开始的标准函数?
【问题讨论】:
没有你想要的标准函数。
使用字符串反转函数(取自here):
func Rev(s string) string {
runes := []rune(s)
for i, j := 0, len(runes)-1; i < j; i, j = i+1, j-1 {
runes[i], runes[j] = runes[j], runes[i]
}
return string(runes)
}
您的解决方案是:
Rev(strings.Replace(Rev(s), Rev(old), Rev(new), n))
您可以简单地使用for 和strings.LastIndex() 来查找可替换的子字符串并替换它们。
【讨论】: