strings 库
strings
高效拼接字符串
stringsBuilderWriteString
import (
"strings"
)
func main() {
var builder strings.Builder
builder.WriteString("hello")
builder.WriteString(" ")
builder.WriteString("world")
builder.WriteString("!")
s := builder.String()
println(s) // hello world!
}
strings.BuildersliceWriteStringslice
大小写转换
小写转大写
ToUpper(s string) string
import "strings"
func main() {
s1 := "hello"
s2 := strings.ToUpper(s1)
println(s2) // HELLO
}
大写转小写
ToLower(s string) string
import "strings"
func main() {
s1 := "HELLO"
s2 := strings.ToLower(s1)
println(s2) // hello
}
比较两个字符串
区分大小写比较
func main() {
s1 := "hello"
s2 := "hello"
s3 := "HELLO"
println(s1 == s2) // true
println(s1 == s3) // false
}
==
EqualFold(s, t string) booltruefalse
func main() {
s1 := "hello"
s2 := "hello"
s3 := "HELLO"
isEual := strings.EqualFold(s1, s2)
println(isEual) // true
isEual2 := strings.EqualFold(s1, s3)
println(isEual2) // true
}
字符串的替换
Replace(s, old, new string, n int) string
soldnewnoldn
案例:实现对敏感词的替换
func main() {
s1 := "我靠啊靠"
s2 := strings.Replace(s1, "靠", "*", 1)
println(s2) // true 我*啊靠
s3 := "我靠啊靠"
s4 := strings.Replace(s3, "靠", "*", -1)
println(s4) // true 我*啊*
}
n1n-10
按照某个分割标识分割字符串
Split(s, sep string) []string
ssep
import (
"fmt"
"strings"
)
func main() {
s1 := "golang-is-awesome"
strSlice := strings.Split(s1, "-")
fmt.Println(strSlice) // [golang is awesome]
}
去掉字符串左右两边的空格
TrimSpace(s string) string
s
import (
"strings"
)
func main() {
s1 := " golang is awesome "
s2 := strings.TrimSpace(s1)
println(s2) // "golang is awesome"
}
将字符串[左边]或[右边]或[左右两边]所指定的字符(串)去掉
将字符串[左右两边]所指定的字符(串)去掉
Trim(s, cutset string) string
import (
"strings"
)
func main() {
s1 := "-golang is awesome-"
s2 := strings.Trim(s1, "-")
println(s2) // "golang is awesome"
}
s
第二个参数为指定的字符(串)。
将字符串[左边]所指定的字符(串)去掉
TrimLeft(s, cutset string) string
import (
"strings"
)
func main() {
s1 := "-golang is awesome"
s2 := strings.TrimLeft(s1, "-")
println(s2) // "golang is awesome"
}
s
第二个参数为指定的字符(串)。
将字符串[右边]所指定的字符(串)去掉
TrimRight(s, cutset string) string
import (
"strings"
)
func main() {
s1 := "golang is awesome-"
s2 := strings.TrimRight(s1, "-")
println(s2) // "golang is awesome"
}
s
第二个参数为指定的字符(串)。
判断字符串是否以指定的字符串开头
HasPrefix(s, prefix string) bool
sprefix
import (
"strings"
)
func main() {
s1 := "hello world!"
flag := strings.HasPrefix(s1, "hello")
println(flag) // true
}
判断字符串是否以指定的字符串结束
HasSuffix(s, prefix string) bool
sprefix
import (
"strings"
)
func main() {
s1 := "hello world!"
flag := strings.HasSuffix(s1, "!")
println(flag) // true
}
将字符串切片中的元素以指定字符串连接生成新字符串
Join(elems []string, sep string) string
elemssep
import (
"strings"
)
func main() {
strSlice := []string{"golang", "is", "awesome"}
s := strings.Join(strSlice, "-")
println(s) // golang-is-awesome
}
查找子串是否存在于指定的字符串中
Contains(s, substr string) bool
ssubstrtruefalse
import (
"strings"
)
func main() {
s := "golang is awesome"
isContains := strings.Contains(s, "golang")
println(isContains) // true
}
小结
BuilderToUpperToLowerReplace