如何在 Golang 中替换字符串?

Posted

技术标签:

【中文标题】如何在 Golang 中替换字符串?【英文标题】:How to replace string in Golang? 【发布时间】:2022-01-12 09:46:19 【问题描述】:

我想替换除第一个和最后一个字母之外的用户名。

例如:

handsome -> h******e

한국어    -> 한*어

这是我的代码:

var final = string([]rune(username)[:1]
for i :=0l i <len([]rune(username)); i++
 if i >1 
  final = final + "*"
 

【问题讨论】:

【参考方案1】:

如果将字符串转换为[]rune,则可以修改该切片并在最后将其转换回string

func blur(s string) string 
    rs := []rune(s)
    for i := 1; i < len(rs)-1; i++ 
        rs[i] = '*'
    
    return string(rs)

测试它:

fmt.Println(blur("handsome"))
fmt.Println(blur("한국어"))

输出(在Go Playground 上试试):

h******e
한*어

请注意,此blur() 函数也适用于少于 3 个字符的字符串,在这种情况下不会模糊任何内容。

【讨论】:

以上是关于如何在 Golang 中替换字符串?的主要内容,如果未能解决你的问题,请参考以下文章

golang依次替换字符串中相同的值

Golang 字符串分割,替换和截取

golang替换无法显示的特殊字符u0000,

golang——json的html标签转义问题

使用gsub(),如何在替换字符串中引用被替换字符串?

js 中如何替换字符串?