欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

go中的string和strconv包

程序员文章站 2022-03-04 18:57:10
...

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

相关标签: golang