go为string提供了strings包来进行字符串的主要操作。
HasPrefix判断字符串是否已prefix开头:
strings.HasPrefix(s, prefix string) bool
HasSuffix判断字符串是否已suffix结尾:
strings.HasSuffix(s, suffix string) bool
简单的例子:
package main
import (
"fmt"
"strings"
)
func main() {
str := "This is a Golang"
fmt.Println("Prefix :", strings.HasPrefix(str, "TH"))
fmt.Println("Suffix :", strings.HasSuffix(str, "lang"))
}
输出:
Prefix : false
Suffix : true
Contains判断字符串是否包含substr:
strings.Contains(s, substr string) bool
Index,LastIndex判断字符串或字符在父字符串中出现的位置:
strings.Index(s, str string) int
strings.LastIndex(s, str string) int
Index返回字符串str在字符串s中的位置,-1表示不包含。LastIndex返回字符串str在字符串s中最后出现的位置。
例子:
package main
import (
"fmt"
"strings"
)
func main() {
str := "This is a Golang"
fmt.Println("hi is:", strings.Index(str, "hi"))
fmt.Println("G is:", strings.Index(str, "G"))
fmt.Println("ol is", strings.LastIndex(str, "ol"))
fmt.Println("s is", strings.LastIndex(str, "s"))
}
输出:
hi is: 1
G is: 10
ol is 11
s is 6
Replace替换字符串
strings.Replace(str, old, new, n) string
Count统计字符串出现的次数
strings.Count(s, str string) int
例子:
package main
import (
"fmt"
"strings"
)
func main() {
str := "This is a Golang"
fmt.Println("a count:", strings.Count(str, "a"))
}
输出:
a count: 2
Repeat重复字符串,用于重复count次字符串s,并返回一个新的字符串
strings.Repeat(s, count int) string
例子:
package main
import (
"fmt"
"strings"
)
func main() {
str := "This is a Golang!"
newS := strings.Repeat(str, 3)
fmt.Println(newS)
}
输出:
This is a Golang!This is a Golang!This is a Golang!
修改字符串大小写
strings.ToLower(s) string //小写
strings.ToUpper(s) string //大写
例子:
package main
import (
"fmt"
"strings"
)
func main() {
str := "This is a Golang!"
lower := strings.ToLower(str)
upper := strings.ToUpper(str)
fmt.Println(lower)
fmt.Println(upper)
}
输出:
this is a golang!
THIS IS A GOLANG!
修剪字符串
strings.TrimSpace(s) 提供了将字符串开头和结尾的空白字符去掉,如果想去掉其他字符,可以使用strings.Trim(s, cut string) 来将开头和结尾的cut字符串,如果只是想去掉开头或者结尾,可以使用TrimLeft,TrimRight
分割字符串
strings.Field(s)将会利用1个或者多个空白字符串来作为动态长度的分隔符将字符串分割成若干个小块,并返回一个slice,如果字符串只包含空白字符,则返回一个长度为0的slice。
strings.Split(s, sep) 用于自定义分割符号来指定字符串进行分割,返回slice。
拼接slice到字符串
strings.Join将类型为string的slice使用分隔符来拼接组成一个字符串:
strings.Join(sl []string, sep string)
例子:
package main
import (
"fmt"
"strings"
)
func main() {
str := "This is a Golang!"
sl := strings.Fields(str)
fmt.Println(sl)
for _, v := range sl {
fmt.Println(v)
}
str = "1,2,3,4,5"
sl = strings.Split(str, ",")
fmt.Println(sl)
str = strings.Join(sl, ":")
fmt.Println(str)
}
输出:
[This is a Golang!]
This
is
a
Golang!
[1 2 3 4 5]
1:2:3:4:5
从字符串中读取内容
strings,NewReader(string)用于生成一个Reader并且读取字符串的内容,然后返回指向该Reader的指针。
字符串与其他类型的转换
与字符串相关的类型转换都是同strconv包实现的。
如strconv.IntSize 或者int类型所占位数。
数字转字符串,可以使用strconv.Itoa(i int)string。
字符串转数字,使用strconv.Atoi(s string) (i int, err error), strconv.ParseFloat(s string, bisSize int) (f float64, err error)
其他更多包的内容,可以参考
官方文档strconv
官方文档strings
微信搜索「goentry-xyz」,关注公众号「灯下独码」