初心是记录和总结,自己学习Go语言的历程。如果能帮助到你,这是我的荣幸。
strings
strings包,用于字符串查找、替换、比较等
有关查找
方法:strings.Contains() - 是否包含sub
字符串。
语法:strings.Contains(s string, substr string)
该方法的含义是:查找s
中是否包含substr
这个字符串。
- 方法返回值:
bool
- 如果
s
包含substr
,则返回true
- 字符串默认是包含
""
空字符串的
示例:
// 定义一个字符串:chengyunlai
str := "chengyunlai"
println(strings.Contains(str, "cheng")) //true
println(strings.Contains(str, "")) //true
println(strings.Contains(str, "x")) //false
方法:strings.Index() - 返回找到的索引
语法:strings.Index(s string, substr string)
Index返回s中第一个substr实例的索引,如果s中不存在substr则返回-1。
- 方法返回值:
int
- 如果
s
包含sub
,则返回sub
出现在s
位置中的第一个索引,下标从0开始 - 如果
s
不包含sub
,则返回-1
示例:
// 定义一个字符串:chengyunlai
str := "chengyunlai"
println(strings.Index(str, "y")) //5
println(strings.Index(str, "x")) //-1
方法:strings.ContainsAny() - 是否包含某个值
语法:strings.ContainsAny(s string, chars string)
是否某个字符在s内。
- 方法返回值:
bool
- 如果
s
包含chars
中任意一个值,如果包含返回true
- 如果
s
不包含chars
中任意一个值,返回false
示例:
// 定义一个字符串:chengyunlai
str := "chengyunlai"
println(strings.ContainsAny(str, "zxcvbnm")) //true
println(strings.ContainsAny(str, "qwrt")) //false
方法:strings.ContainsRune() - 是否包含这个Unicode
语法:strings.ContainsRune(s string, r rune)
是否在s内包含指定的Unicode。
- 方法返回值:
bool
- 如果
s
包含指定的Unicode
返回true
- 如果
s
不包含指定的Unicode
返回false
示例:
// 定义一个字符串:chengyunlai
str := "chengyunlai"
println(strings.ContainsRune(str, 97)) //true 提示,因为a的编码是97
println(strings.ContainsRune(str, 98)) //false
方法:strings.Count() - 数一下出现了几次
语法:strings.Count(s string, substr string)
计算在s
中出现了几次substr
,如果substr
为空,则返回总长度+1
- 方法返回值:
int
示例:
// 定义一个字符串:chengyunlai
str := "chengyunlai"
println(strings.Count(str, "")) //12
println(strings.Count(str, "n")) //2
方法:strings.LastIndex() - 最后出现的索引
语法:strings.LastIndex(s string, substr string)
Index返回s中第一个substr实例的索引,如果s中不存在substr则返回-1。
- 方法返回值:
int
示例:
// 定义一个字符串:chengyunlai
str := "chengyunlai"
println(strings.LastIndex(str, "n")) //7
截取
方法:strings.Cut() - 把什么切掉不要
语法:strings.Cut(s string, sep string)
Cut以sep
进行s
切片,返回sep
在s
中之前和之后的文本,并且会返回true
。如果sep没有出现在s中,Cut分别返回s
,""
,false
。
- 方法返回值:
(before string , after string , found bool)
示例:
// 定义一个字符串:chengyunlai
str := "chengyunlai"
println(strings.Cut(str, "yun")) //cheng lai true
比较
方法:strings.Compare() - 比较两个字符串
语法:strings.Compare(a string, b string)
Compare返回一个整数,按字典序比较两个字符串。如果a == b,结果为0;如果a < b,结果为-1;如果a > b,结果为+1。
- 方法返回值:
int
示例:
// 定义一个字符串:chengyunlai
str := "chengyunlai"
println(strings.Compare(str, "ahengyunlai")) //1 , c > a
println(strings.Compare(str, "chengyunlai")) //0 , c = c
println(strings.Compare(str, "dhengyunlai")) //-1 , c < d
分割
方法:strings.Split() - 按照某种规则分割字符串
语法:strings.Split(s string, sep string)
可以指定字符按照规则分割,也可以输入
""
空字符串,将整个字符串分割成单个字符
- 方法返回值:
[]string
示例:
// 定义一个字符串:chengyunlai
str2 := "cheng_yun_lai"
split := strings.Split(str2, "_")
for _, str := range split {
println(str)
}
/**
cheng
yun
lai
*/