首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何替换同一字符串中的多个字符?

如何替换同一字符串中的多个字符?
EN

Stack Overflow用户
提问于 2021-10-04 10:58:01
回答 1查看 89关注 0票数 5

我一般不是很精通编程,所以请在这里放我一马。有没有更好的方法来解决这个替换字符串中多个字符的过程?

代码语言:javascript
运行
AI代码解释
复制
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")
EN

回答 1

Stack Overflow用户

发布于 2021-10-04 11:04:03

创建包含所有可替换对的单个strings.Replacer

代码语言:javascript
运行
AI代码解释
复制
r := strings.NewReplacer(
    "-", "_",
    " ", "_",
    ",", "_",
    ".", "",
    "/", "",
    "€", "",
    "%", "",
    "12", "halb",
    "14", "viertel",
)

并像这样使用它:

代码语言:javascript
运行
AI代码解释
复制
s2 := r.Replace(godiacritics.Normalize(strings.ToLower(articles[i].Name)))

strings.Replacer在单个步骤中执行所有替换(它遍历字符串一次)。它对于并发使用也是安全的,只需创建一次Replacer并在需要的时候/任何地方重用它。

测试它的示例代码:

代码语言:javascript
运行
AI代码解释
复制
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上试用):

代码语言:javascript
运行
AI代码解释
复制
test___:halb_viertel
test___:halb_viertel
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69441068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档