5.golang字符串的拆解和拼接

字符串是 Go 中的字节切片。可以通过将一组字符括在双引号中来创建字符串" "。Go 中的字符串是兼容Unicode编码的,并且是UTF-8编码的。

访问字符串的单个字节或字符

由于字符串是字节切片,因此可以访问字符串的每个字节。

func printStr(s string) {
	fmt.Printf("Bytes: ")
	for i := 0; i < len(s); i++ {
		fmt.Printf("%x ", s[i])
	}
	fmt.Printf("Characters: ")
	for i := 0; i < len(s); i++ {
		fmt.Printf("%c ", s[i])
	}
}

func main() {
	str := "初辰ge"
	fmt.Printf("String: %s\n", str)
	printStr(str)
}

该程序将输出为:

String: 初辰ge
Bytes: e5 88 9d e8 be b0 67 65 Characters: å 

特殊符号乱码网页没能显示,以下是编辑器截图:
在这里插入图片描述
在 UTF-8 编码中,一个码点可能会占一个以上的字节。 在这种情况下,需要 rune 来解决。rune是 Go 中的内置类型,它是 int32 的别名。Rune 表示 Go 中的 Unicode 代码点。代码点占用多少字节并不重要,它可以用一个符文来表示。

func printStr(s string) {
	fmt.Printf("Bytes: ")
	for i := 0; i < len(s); i++ {
		fmt.Printf("%x ", s[i])
	}
	fmt.Printf("CharactersRune: ")
	runes := []rune(s)
	for i := 0; i < len(runes); i++ {
		fmt.Printf("%c ", runes[i])
	}
}

func main() {
	str := "初辰ge"
	fmt.Printf("String: %s\n", str)
	printStr(str)
}

该程序将输出为:

String: 初辰ge
Bytes: e5 88 9d e8 be b0 67 65 CharactersRune: 初 辰 g e 

字符串拼接

执行字符串连接的最简单方法是使用+运算符。

str1 := "初辰"
str2 := "ge"
fmt.Println(str1 + str2)

该程序将输出为:

初辰ge

使用 fmt 包的Sprintf函数。

str1 := "初辰"
str2 := "ge"
res := fmt.Sprintf("%s %s", str1, str2)
fmt.Println(res)

该程序将输出为:

初辰ge

你可能感兴趣的:(golang,golang,开发语言,后端,go)