Замена всех символов cters вы получите string
с тем же номером персонажа, но все будут '*'
. Поэтому просто постройте string
с той же длиной символа, но все они будут '*'
. strings.Repeat()
может повторить string
(конкатенация его):
ss := []string{"golang", "pi", "世界"}
for _, s := range ss {
fmt.Println(s, strings.Repeat("*", utf8.RuneCountInString(s)))
}
Output (попробовать его на Go Playground):
golang ******
pi **
世界 **
Обратите внимание, что len(s)
дает вам длину формы кодировки UTF-8, как это как Go хранит строки в памяти. Вы можете получить количество символов, используя utf8.RuneCountInString()
.
Например, следующая строка:
fmt.Println(len("世界"), utf8.RuneCountInString("世界")) // Prints 6 2
печатает 6 2
как строки "世界"
требует 6 байт для кодирования (в UTF-8), но он имеет только 2 символа.
Не могли бы вы дать нам больше примеров того, как бы вы хотели себя вести себя? – icio
ex: если я получаю строку типа «INHERITED», я хочу преобразовать ее в «*********» – vijay
Вы имеете в виду 'strings.Replace (" golang "," golang "," ** **** ", -1)'? – Nadh