初心是记录和总结,自己学习Go语言的历程。如果能帮助到你,这是我的荣幸。

strings

strings包,用于字符串查找、替换、比较等

有关查找

方法:strings.Contains() - 是否包含sub字符串。

语法:strings.Contains(s string, substr string)

该方法的含义是:查找s中是否包含substr这个字符串。

go语言检索字符串 go查找字符串_go语言检索字符串

  • 方法返回值: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。

go语言检索字符串 go查找字符串_字符串_02

  • 方法返回值: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内。

go语言检索字符串 go查找字符串_go语言检索字符串_03

  • 方法返回值: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。

go语言检索字符串 go查找字符串_golang_04

  • 方法返回值: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

go语言检索字符串 go查找字符串_空字符串_05

  • 方法返回值: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。

go语言检索字符串 go查找字符串_ico_06

  • 方法返回值:int

示例:

// 定义一个字符串:chengyunlai
str := "chengyunlai"

println(strings.LastIndex(str, "n")) //7

截取

方法:strings.Cut() - 把什么切掉不要

语法:strings.Cut(s string, sep string)

Cut以sep进行s切片,返回seps中之前和之后的文本,并且会返回true。如果sep没有出现在s中,Cut分别返回s""false

go语言检索字符串 go查找字符串_空字符串_07

  • 方法返回值:(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。

go语言检索字符串 go查找字符串_ico_08

  • 方法返回值: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)

可以指定字符按照规则分割,也可以输入""空字符串,将整个字符串分割成单个字符

go语言检索字符串 go查找字符串_空字符串_09

  • 方法返回值:[]string

示例:

// 定义一个字符串:chengyunlai
str2 := "cheng_yun_lai"

split := strings.Split(str2, "_")
for _, str := range split {
   println(str)
}
/**
cheng
yun
lai
*/