package main
import (
"fmt"
"strings"
)
func main() {
fmt.Println(strings.Replace("golang", "g", "1", -1))
}
如何替换字符串中的所有字符 "golang" (以上字符串)来自 * 也就是说它应该看起来像 "******" ?
Best Answer-推荐答案
通过替换所有字符,您将得到 string 具有相同的字符数,但都是 '*' .所以简单地构造一个 string 具有相同的字符长度,但都是 '*' . strings.Repeat() 可以重复一次 string (通过连接它):
ss := []string{"golang", "pi", "世界"}
for _, s := range ss {
fmt.Println(s, strings.Repeat("*", utf8.RuneCountInString(s)))
}
输出(在 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 个字符。
关于string - 如何在golang中替换字符串中的所有字符,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/36930263/
|