GO语言-05常用包:字符串

简介: 自己学习Go语言学习过程中的记录与总结,希望对你能有帮助。第五篇:学习Go语言的常用包:strings
初心是记录和总结,自己学习Go语言的历程。如果能帮助到你,这是我的荣幸。

strings

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

有关查找

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

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

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

image.png

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

image.png

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

image.png

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

image.png

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

image.png

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

image.png

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

image.png

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

image.png

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

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

image.png

  • 方法返回值:[]string

示例:

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

split := strings.Split(str2, "_")
for _, str := range split {
   println(str)
}
/**
cheng
yun
lai
*/
目录
相关文章
|
9天前
|
存储 监控 算法
员工上网行为监控中的Go语言算法:布隆过滤器的应用
在信息化高速发展的时代,企业上网行为监管至关重要。布隆过滤器作为一种高效、节省空间的概率性数据结构,适用于大规模URL查询与匹配,是实现精准上网行为管理的理想选择。本文探讨了布隆过滤器的原理及其优缺点,并展示了如何使用Go语言实现该算法,以提升企业网络管理效率和安全性。尽管存在误报等局限性,但合理配置下,布隆过滤器为企业提供了经济有效的解决方案。
45 8
员工上网行为监控中的Go语言算法:布隆过滤器的应用
|
29天前
|
存储 Go 索引
go语言中数组和切片
go语言中数组和切片
40 7
|
29天前
|
Go 开发工具
百炼-千问模型通过openai接口构建assistant 等 go语言
由于阿里百炼平台通义千问大模型没有完善的go语言兼容openapi示例,并且官方答复assistant是不兼容openapi sdk的。 实际使用中发现是能够支持的,所以自己写了一个demo test示例,给大家做一个参考。
|
29天前
|
程序员 Go
go语言中结构体(Struct)
go语言中结构体(Struct)
101 71
|
28天前
|
存储 Go 索引
go语言中的数组(Array)
go语言中的数组(Array)
105 67
|
3天前
|
算法 安全 Go
Go 语言中实现 RSA 加解密、签名验证算法
随着互联网的发展,安全需求日益增长。非对称加密算法RSA成为密码学中的重要代表。本文介绍如何使用Go语言和[forgoer/openssl](https://github.com/forgoer/openssl)库简化RSA加解密操作,包括秘钥生成、加解密及签名验证。该库还支持AES、DES等常用算法,安装简便,代码示例清晰易懂。
30 12
|
23天前
|
Linux Go iOS开发
怎么禁用 vscode 中点击 go 包名时自动打开浏览器跳转到 pkg.go.dev
本文介绍了如何在 VSCode 中禁用点击 Go 包名时自动打开浏览器跳转到 pkg.go.dev 的功能。通过将 gopls 的 `ui.navigation.importShortcut` 设置为 &quot;Definition&quot;,可以实现仅跳转到定义处而不打开链接。具体操作步骤包括:打开设置、搜索 gopls、编辑 settings.json 文件并保存更改,最后重启 VSCode 使设置生效。
46 7
怎么禁用 vscode 中点击 go 包名时自动打开浏览器跳转到 pkg.go.dev
|
29天前
|
存储 Go
go语言中映射
go语言中映射
36 11
|
7天前
|
监控 算法 安全
解锁企业计算机监控的关键:基于 Go 语言的精准洞察算法
企业计算机监控在数字化浪潮下至关重要,旨在保障信息资产安全与高效运营。利用Go语言的并发编程和系统交互能力,通过进程监控、网络行为分析及应用程序使用记录等手段,实时掌握计算机运行状态。具体实现包括获取进程信息、解析网络数据包、记录应用使用时长等,确保企业信息安全合规,提升工作效率。本文转载自:[VIPShare](https://www.vipshare.com)。
19 0
|
21天前
|
Go 数据安全/隐私保护 UED
优化Go语言中的网络连接:设置代理超时参数
优化Go语言中的网络连接:设置代理超时参数