【发布时间】: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 + "*"
}
}
【问题讨论】:
我想替换除第一个和最后一个字母之外的用户名。
例如:
handsome -> h******e
한국어 -> 한*어
这是我的代码:
var final = string([]rune(username)[:1]
for i :=0l i <len([]rune(username)); i++{
if i >1 {
final = final + "*"
}
}
【问题讨论】:
如果将字符串转换为[]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 个字符的字符串,在这种情况下不会模糊任何内容。
【讨论】: