字符串操作
文章发布较早,内容可能过时,阅读注意甄别。
字符串在开发中经常用到,包括用户的输入,数据库读取的数据等,我们经常需要对字符串进行分割、连接、转换等操作,我们可以通过 Go 标准库中的 strings 和 strconv 两个包中的函数进行相应的操作。
下面这些函数来自于 strings 包,这里介绍一些我平常经常用到的函数,更详细的请参考官方的文档。
# 1,Contains
func Contains(s, substr string) bool
功能:字符串s中是否包含substr,返回bool值
1
2
2
示例代码:
package main
import (
"fmt"
"strings"
)
func main() {
//"hellogo"中是否包含"hello",包含返回true,不包含返回false
fmt.Println(strings.Contains("hellogo", "hello"))
fmt.Println(strings.Contains("hellogo", "abc"))
}
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
# 2,Join
func Join(a []string, sep string) string
功能:字符串链接,把slice a通过sep链接起来
1
2
2
示例代码:
package main
import (
"fmt"
"strings"
)
func main() {
//Join 将内容组合在一起
s := []string{"abc", "hello", "eryajf", "go"}
jo := strings.Join(s, "&") //"&"表示以&作为分隔符
fmt.Println("jo = ", jo)
}
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
# 3,Index
func Index(s, sep string) int
功能:在字符串s中查找sep所在的位置,返回位置值,找不到返回-1
1
2
2
示例代码:
package main
import (
"fmt"
"strings"
)
func main() {
//Index,查找字符串的位置
fmt.Println(strings.Index("abchello", "hello"))
fmt.Println(strings.Index("abchello", "go")) //不包含返回-1
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# 4,Repeat
func Repeat(s string, count int) string
功能:重复s字符串count次,最后返回重复的字符串
1
2
2
示例代码:
package main
import (
"fmt"
"strings"
)
func main() {
buf := strings.Repeat("go", 3)
fmt.Println("buf = ", buf)
}
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 5,Replace
func Replace(s, old, new string, n int) string
功能:在s字符串中,把old字符串替换为new字符串,n表示替换的次数,小于0表示全部替换
1
2
2
示例代码:
package main
import (
"fmt"
"strings"
)
func main() {
//Replace
fmt.Println(strings.Replace("oink oink oink", "k", "ky", 2)) //表示把k更换成ky,更换两次
fmt.Println(strings.Replace("oink oink oink", "oink", "eryajf", -1)) //小于0表示全部替换
}
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
# 6,Split
func Split(s, sep string) []string
功能:把s字符串按照sep分割,返回slice
1
2
2
示例代码:
package main
import (
"fmt"
"strings"
)
func main() {
//Split 以指定的分隔符拆分
s1 := strings.Split("hello@abc@eryajf@go", "@")
fmt.Println("s1 = ", s1)
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# 7,Trim
func Trim(s string, cutset string) string
功能:在s字符串的头部和尾部去除cutset指定的字符串
1
2
2
示例代码:
package main
import (
"fmt"
"strings"
)
func main() {
//Trim去掉两头的字符
s2 := strings.Trim(" are u ok ? ", " ") //去掉两头的空格
fmt.Printf("s2 = #%s#\n", s2)
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# 8,Fields
func Fields(s string) []string
功能:去除s字符串的空格符,并且按照空格分割返回slice
1
2
2
示例代码:
package main
import (
"fmt"
"strings"
)
func main() {
//Fields去掉空格,把元素放入切片中
s3 := strings.Fields(" are u ok ? ")
for i, data := range s3 {
fmt.Println(i, ",", data)
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
上次更新: 2024/06/13, 22:13:45