Go语言基础数据类型之字符串常用的操作

尹正杰 / 2024-07-08 / 原文

目录
  • 一.字符串定义
    • 1.字符串概述
    • 2.多行字符串
    • 3.修改字符串
  • 二. 字符串常用的操作
    • 1 字符串常用的操作
    • 2 查看字符串的长度
    • 3 拼接字符串
    • 4 分割字符串
    • 5 判断是否包含子串
    • 6 判断前缀和后缀
    • 7 求子串出现的位置
    • 8 字符串join操作
    • 9 查看官方文档

一.字符串定义

1.字符串概述

字符串就是一串固定长度的字符链接起来的字符序列,字符和字符串的关系有点类似于糖葫芦,羊肉串,豌豆荚之类的关系。

Go语言中的字符串以原生数据类型出现,使用字符串就像使用其他原生数据类型(int、bool、float32、float64等)一样。 

Go语言里的字符串的内部实现使用UTF-8编码,该字符集包含包含ASCII码。 字符串的值为双引号(")中的内容。

2.多行字符串


3.修改字符串

package main

import (
	"fmt"
)

func main() {
	s1 := "白萝卜"

	// 想要修改字符串,则需要将字符串转换为切片类型进行修改。
	s2 := []rune(s1)
	fmt.Println("修改前 --->: ", string(s2))
	s2[0] = '红'
	fmt.Println("修改后 --->: ", string(s2))

	// 实际上,s1这个变量压根就没有动过
	fmt.Println("s1 = ", s1)
}

二. 字符串常用的操作

1 字符串常用的操作

方法 作用描述
len(str) 求长度
"+"或"fmt.Sprintf" 拼接字符串,推荐使用"+"
strings.Split 分割
strings.contains 判断是否包含
strings.HasPrefix,strings.HasSuffix 前缀/后缀判断
strings.Index(),strings.LastIndex() 子串出现的位置
strings.Join(a[]string, sep string) join操作
如上表所示,介绍了有关字符串常用的方法。具体的使用案例可参考下面的笔记即可。

2 查看字符串的长度

package main

import (
	"fmt"
)

func main() {

	s1 := "Jason Yin"

	fmt.Printf("s1的字符串长度为: %d\n", len(s1))
}

3 拼接字符串


4 分割字符串

package main

import (
	"fmt"
	"strings"
)

func main() {

	s1 := "XbYbZ"
	s2 := strings.Split(s1, "b")

	fmt.Println(s2)

}

5 判断是否包含子串

package main

import (
	"fmt"
	"strings"
)

func main() {
	s1 := "JasonYin2020"

	// 判断s1字符串是否包含字符串"Yin",区分大小写哟~
	res := strings.Contains(s1, "Yin")

	fmt.Printf("res ---> %v\n", res)
}

6 判断前缀和后缀

package main

import (
	"fmt"
	"strings"
)

func main() {
	s1 := "JasonYin2020"

	// 判断字符串是否以'Jason'开头
	res1 := strings.HasPrefix(s1, "Jason")

	// 判断字符串是否以'20'结尾
	res2 := strings.HasSuffix(s1, "20")

	fmt.Printf("res1 ---> %v\n", res1)
	fmt.Printf("res2 ---> %v\n", res2)
}

7 求子串出现的位置

package main

import (
	"fmt"
	"strings"
)

func main() {
	src := "JasonYin2020 is no problem !!!"

	findstr := "n"

	first := strings.Index(src, findstr)
	last := strings.LastIndex(src, findstr)

	fmt.Printf("%s字符串的%s第一次出现的位置是: %d\n", src, findstr, first)
	fmt.Printf("%s字符串的%s最后一次出现的位置是: %d\n", src, findstr, last)
}

8 字符串join操作

package main

import (
	"fmt"
	"strings"
)

func main() {

	// 定义一个切片
	s1 := []string{"C++", "Java", "Golang", "Python", "JavaScript", "CSS"}

	// 将一个切片拼接为一个字符串
	res := strings.Join(s1, "######")

	fmt.Printf("res ---> %v\n", res)
}

9 查看官方文档