#string #go
#строка #Вперед
Вопрос:
Я хочу заменить имя пользователя, кроме первого и последнего алфавита.
Например:
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 символов, и в этом случае ничего не будет размыто.