string - 如何在golang中替换字符串中的所有字符

标签 string go replace

package main

import (
    "fmt"
    "strings"
)

func main() {
    fmt.Println(strings.Replace("golang", "g", "1", -1))
}

如何用 * 替换字符串 "golang" (上面的字符串)中的所有字符,它应该看起来像 "******"?

最佳答案

通过替换所有字符,您将获得具有相同字符数的 string,但都是 '*'。因此,只需构造一个具有相同字符长度但全部为 '*'stringstrings.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/

相关文章:

有人可以澄清我对 C 字符串、数组与指针的混淆吗

php - 如何替换 MySQL 字符串中特定字符的所有其他实例?

javascript - Javascript 中的数字格式+转换?

json - 如何在结构中存储对象

javascript - 如何在 JavaScript/jQuery 中查找数组是否包含特定字符串?

php - 如何使用 go 的 net/http 包提供 php 文件?

bash gnu 并行帮助

regex - 如何使用PowerShell解析XML文件并删除两个标签之间的文本?

java - 用一个下划线替换点序列

go - 如何在 golang 中相互转换相同的签名类型?