42. 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 语言中的字符串是变量,并不是对象,每次修改完字符串其实都会使用一个新的内存,所以在内存不充足的场景要慎用字符串操作。

「点点赞赏,手留余香」

0

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

微信微信 支付宝支付宝

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

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系maynote@foxmail.com处理
码云笔记 » 42. Go 语言的 strings 系统包的使用

发表回复