go中的string和strconv包

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

猜你喜欢

转载自juejin.im/post/5bded3a16fb9a049f153a48a