@@ -1,58 +0,0 @@ 20.字符串操作 | 凤凰涅槃进阶之路

20.字符串操作

Abel sun2023年1月6日约 687 字大约 2 分钟

20.字符串操作

字符串在开发中经常用到,包括用户的输入,数据库读取的数据等,我们经常需要对字符串进行分割、连接、转换等操作,我们可以通过Go标准库中的strings和strconv两个包中的函数进行相应的操作。

下面这些函数来自于strings包,这里介绍一些我平常经常用到的函数,更详细的请参考官方的文档。

1,Contains

func Contains(s, substr string) bool
功能:字符串s中是否包含substr,返回bool

示例代码:

package main

import (
 "fmt"
 "strings"
)

func main() {
 //"hellogo"中是否包含"hello",包含返回true,不包含返回false
 fmt.Println(strings.Contains("hellogo", "hello"))
 fmt.Println(strings.Contains("hellogo", "abc"))

}

2,Join

func Join(a []string, sep string) string
功能:字符串链接,把slice a通过sep链接起来

示例代码:

package main

import (
 "fmt"
 "strings"
)

func main() {
 //Join 将内容组合在一起
 s := []string{"abc", "hello", "eryajf", "go"}
 jo := strings.Join(s, "&") //"&"表示以&作为分隔符
 fmt.Println("jo = ", jo)
}

3,Index

func Index(s, sep string) int
功能:在字符串s中查找sep所在的位置,返回位置值,找不到返回-1

示例代码:

package main

import (
 "fmt"
 "strings"
)

func main() {
 //Index,查找字符串的位置
 fmt.Println(strings.Index("abchello", "hello"))
 fmt.Println(strings.Index("abchello", "go")) //不包含返回-1
}

4,Repeat

func Repeat(s string, count int) string
功能:重复s字符串count次,最后返回重复的字符串

示例代码:

package main

import (
 "fmt"
 "strings"
)

func main() {
 buf := strings.Repeat("go", 3)
 fmt.Println("buf = ", buf)
}

5,Replace

func Replace(s, old, new string, n int) string
功能:在s字符串中,把old字符串替换为new字符串,n表示替换的次数,小于0表示全部替换

示例代码:

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表示全部替换

}

6,Split

func Split(s, sep string) []string
功能:把s字符串按照sep分割,返回slice

示例代码:

package main

import (
 "fmt"
 "strings"
)

func main() {
 //Split 以指定的分隔符拆分
 s1 := strings.Split("hello@abc@eryajf@go", "@")
 fmt.Println("s1 = ", s1)
}

7,Trim

func Trim(s string, cutset string) string
功能:在s字符串的头部和尾部去除cutset指定的字符串

示例代码:

package main

import (
 "fmt"
 "strings"
)

func main() {
 //Trim去掉两头的字符
 s2 := strings.Trim("   are u ok ?    ", " ") //去掉两头的空格
 fmt.Printf("s2 = #%s#\n", s2)
}

8,Fields

func Fields(s string) []string
功能:去除s字符串的空格符,并且按照空格分割返回slice

示例代码:

package main

import (
 "fmt"
 "strings"
)

func main() {
 //Fields去掉空格,把元素放入切片中
 s3 := strings.Fields("   are u ok ?    ")
 for i, data := range s3 {
  fmt.Println(i, ",", data)
 }
}
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.9.1