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