42. Go 语言的 strings 系统包的使用

AI 概述
1. 获取字符串长度2. 比较字符串3. 字符串分割4. 前后缀的判断5. 去除前后空格6. 将字符串数组拼接为字符串7. 字符串替换8. 小结 前文我们有学习了 string 变量,发现 Go 语言并没有向面向对象语言那样,类型中自带方法来处理对象的值。Go 语言中也有类似的操作,其操作全都在 strings 系统包中实现了...
目录
文章目录隐藏
  1. 1. 获取字符串长度
  2. 2. 比较字符串
  3. 3. 字符串分割
  4. 4. 前后缀的判断
  5. 5. 去除前后空格
  6. 6. 将字符串数组拼接为字符串
  7. 7. 字符串替换
  8. 8. 小结

前文我们有学习了 string 变量,发现 Go 语言并没有向面向对象语言那样,类型中自带方法来处理对象的值。Go 语言中也有类似的操作,其操作全都在 strings 系统包中实现了。本文主要来讲解一下如何使用 strings 系统包比较常用的字符串操作

1. 获取字符串长度

在往数据库中写入数据的时候,数据库字段通常都会有长度限制,所以在写入之前最好事先判断一下字符串的长度是否符合自己的设计。

代码示例:

package main

import (
    "fmt"
    "strings"
)

func main() {
    str := "Hello Codey!"
    fmt.Println(len(str))
    fmt.Println(strings.Count(str, "")-1)
}

执行结果:

获取字符串长度

其实获取字符串长度常用的是用 len() 函数去获取,因为 sring 的本质是一个 rune 切片,所以 len() 对 string 也是可以直接使用的。如果想要通过 strings 包来获取长度,我们可以通过 strings.Count(str,s string)int 来迂回达到目的,寻找字符串中的空字符串的个数就相当于寻找字符之间的空隙(包括字符首尾),所以得到的数字就是长度+1,我们得到结果后再减去 1,就可以得到字符串的长度了。

2. 比较字符串

在开发大小写不敏感的应用场景时,比如说地名的英文缩写。一般情况我们都将字符串转换为大写或者小写再进行比较。Go 语言中的 strings 包中专门提供了一个大小写不敏感的比较函数——strings.EqualFold(str1,str2 string)bool

代码示例:

package main

import (
    "fmt"
    "strings"
)

func main() {
    str1 := "Hello Codey!"
    str2 := "heLLo coDEy!"
    fmt.Println(strings.EqualFold(str1, str2))
}

执行结果:

比较字符串

3. 字符串分割

Go 语言中也是可以支持根据特定字符串将字符串分割为字符串数组的操作。通过使用 strings.Split(s, sep string) []string 来实现

代码示例:

package main

import (
    "fmt"
    "strings"
)

func main() {
    str := "Hello Codey!"
    fmt.Println(strings.Split(str, " "))//使用空格字符串去分割 str
}

执行结果:

字符串分割

4. 前后缀的判断

在执行文件操作的时候,经常会用到的前后缀的操作,比如获取日志文件的时候,获取 .log 结尾,同时还要以 2020 5 开头的文件,就需要判断前后缀是否含有这些字符串,Go 语言的前缀判断是使用 strings.HasPrefix(s, prefix string``)bool,而后缀是使用 strings.HasSuffix(s, prefix string``)bool

代码示例:

package main

import (
    "fmt"
    "strings"
)

func main() {
    str := "2024_6_05.log"
    fmt.Println(strings.HasPrefix(str, "2020_6_"))
    fmt.Println(strings.HasSuffix(str, ".log"))
}

执行结果:

前后缀的判断

5. 去除前后空格

在处理前端输入的数据的时候,有时会需要去除前后空格。Go 语言中使用 strings.TrimSpace(s string)string 来执行这个操作。

代码示例:

package main

import (
    "fmt"
    "strings"
)

func main() {
    str := "           Hello Codey!          "
    fmt.Println(strings.TrimSpace(str))
}

执行结果:

去除前后空格

6. 将字符串数组拼接为字符串

Go 语言中使用 strings.Join(a ``[]string, ``sep string) string 来将字符串数组,根据你想要的字符串进行拼接成为一个字符串。

代码示例:

package main

import (
    "fmt"
    "strings"
)

func main() {
    str := []string{"Hello", "Hi"}
    fmt.Println(strings.Join(str, ","))//使用逗号拼接字符串
}

执行结果:

将字符串数组拼接为字符串

7. 字符串替换

Go 语言中使用 strings.Replace(s, old, new string, n int) string 来进行字符串替换,n<0 时替换字符串中左右旧字符子串

代码示例:

package main

import (
    "fmt"
    "strings"
)

func main() {
    str := "Hello Codey!"
    fmt.Println(strings.Replace(str, "Hello", "Hi", -1))//将 str 中所有 Hello 替换为 Hi
}

执行结果:

字符串替换

8. 小结

本文主要介绍了 Go 语言的一个字符串操作包,这个包里面还有很多其它对字符串的操作,有兴趣的读者可以继续研究。本文介绍的主要就是些开发中常用的字符串操作,具体开发中还是字符串的分割和替换用的最多,需要注意的是 Go 语言中的字符串是变量,并不是对象,每次修改完字符串其实都会使用一个新的内存,所以在内存不充足的场景要慎用字符串操作。

以上关于42. Go 语言的 strings 系统包的使用的文章就介绍到这了,更多相关内容请搜索码云笔记以前的文章或继续浏览下面的相关文章,希望大家以后多多支持码云笔记。

「点点赞赏,手留余香」

0

给作者打赏,鼓励TA抓紧创作!

微信微信 支付宝支付宝

还没有人赞赏,快来当第一个赞赏的人吧!

声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » 42. Go 语言的 strings 系统包的使用

发表回复