Go语言基础数据类型之字符串常用的操作
目录
- 一.字符串定义
- 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 查看官方文档
当你的才华还撑不起你的野心的时候,你就应该静下心来学习。当你的能力还驾驭不了你的目标的时候,你就应该沉下心来历练。问问自己,想要怎样的人生。
欢迎加入基础架构自动化运维:598432640,大数据SRE进阶之路:959042252,DevOps进阶之路:526991186