我一般不是很精通编程,所以请在这里放我一马。有没有更好的方法来解决这个替换字符串中多个字符的过程?
strings.ReplaceAll(strings.ReplaceAll(strings.ReplaceAll(strings.ReplaceAll(strings.ReplaceAll(strings.ReplaceAll(strings.ReplaceAll(strings.ReplaceAll(strings.ReplaceAll(godiacritics.Normalize(strings.ToLower(articles[i].Name)), "-", "_"), " ", "_"), ",", "_"), ".", ""), "/", ""), "€", ""), "%", ""), "12", "halb"), "14", "viertel")
发布于 2021-10-04 11:04:03
创建包含所有可替换对的单个strings.Replacer
:
r := strings.NewReplacer(
"-", "_",
" ", "_",
",", "_",
".", "",
"/", "",
"€", "",
"%", "",
"12", "halb",
"14", "viertel",
)
并像这样使用它:
s2 := r.Replace(godiacritics.Normalize(strings.ToLower(articles[i].Name)))
strings.Replacer
在单个步骤中执行所有替换(它遍历字符串一次)。它对于并发使用也是安全的,只需创建一次Replacer
并在需要的时候/任何地方重用它。
测试它的示例代码:
s := "test- ,./€%:12 14"
s2 := strings.ReplaceAll(strings.ReplaceAll(strings.ReplaceAll(strings.ReplaceAll(strings.ReplaceAll(strings.ReplaceAll(strings.ReplaceAll(strings.ReplaceAll(strings.ReplaceAll(s, "-", "_"), " ", "_"), ",", "_"), ".", ""), "/", ""), "€", ""), "%", ""), "12", "halb"), "14", "viertel")
fmt.Println(s2)
r := strings.NewReplacer(
"-", "_",
" ", "_",
",", "_",
".", "",
"/", "",
"€", "",
"%", "",
"12", "halb",
"14", "viertel",
)
s3 := r.Replace(s)
fmt.Println(s3)
以下输出(在Go Playground上试用):
test___:halb_viertel
test___:halb_viertel
https://stackoverflow.com/questions/69441068
复制相似问题