跳过正文
  1. 文章/
  2. GoLang/
  3. 常用包/
  4. 标准包/

3、strings

·1702 字·4 分钟· loading · loading · ·
GoLang 常用包 标准包
GradyYoung
作者
GradyYoung
标准包 - 点击查看当前系列文章
§ 3、strings 「 当前文章 」

strings包
#

Golang提供了许多内置的字符串函数,这些函数可在处理字符串数据时帮助执行一些操作。Golang字符串函数是核心部分。使用此功能无需安装,仅需要导入strings包。

import strings

重要的Golang字符串函数列表如下:

查找
#

Count()
#

查找字符串substr在字符串s中出现的次数

func Count(s, substr string) int

Contains()
#

判断字符串s中是否包含字符串substr

func Contains(s, substr string) bool

ContainsRune()
#

判断字符串s中是否包含utf8字符r

func ContainsRune(s string, r rune) bool 

Index()
#

从前往后查找字符串s中,字符串substr第一次出现的位置,没有则返回-1

func Index(s, substr string) int

注意Index()返回的位置是开始的字节索引,而不是字符,所以对于Unicode字符串,例如中文,则不是字符所在位置,对于中文字符,可以使用如下的方式计算,该方式对于其他...Index()方法同样适用

s1 := "你好中国"
i := strings.Index(s1, "中国")
fmt.Println(i) // 6
fmt.Println(utf8.RuneCountInString(s1[:i])) // 2

LastIndex()
#

从后往前查找字符串s中,字符串substr第一次出现的位置,没有则返回-1

func LastIndex(s, substr string) int

IndexAny()
#

从前往后查找字符串s中,字符序列chars中任意字符第一次出现的位置,没有则返回-1

func IndexAny(s, chars string) int

LastIndexAny()
#

从后往前查找字符串s中,字符序列chars中任意字符第一次出现的位置,没有则返回-1

func LastIndexAny(s, chars string) int

IndexByte()
#

从前往后查找字符串s中,ASCII码字符c第一次出现的位置,没有则返回-1

func IndexByte(s string, c byte) int

LastIndexByte()
#

从后往前查找字符串s中,ASCII码字符c第一次出现的位置,没有则返回-1

func LastIndexByte(s string, c byte) int

IndexRune()
#

从前往后查找字符串s中,UTF8码字符r第一次出现的位置,没有则返回-1

func IndexRune(s string, r rune) int

LastIndexRune()
#

从后往前查找字符串s中,UTF8码字符r第一次出现的位置,没有则返回-1

func LastIndexRune(s string, r rune) int

IndexFunc()
#

从前往后查找字符串s中,使f函数返回true的字符位置,没有则返回-1

func IndexFunc(s string, f func(rune) bool) int

LastIndexFunc()
#

从后往前查找字符串s中,使f函数返回true的字符位置,没有则返回-1

func LastIndexFunc(s string, f func(rune) bool) int

HasPrefix()
#

检查字符串s是否以prefix开头,是则返回true

func HasPrefix(s, prefix string) bool

HasSuffix()
#

检查字符串s是否以prefix结尾,是则返回true

func HasSuffix(s, suffix string) bool

替换
#

Title()
#

将字符串每个单词的首字母替换为大写,并返回

func Title(s string) string

ToTitle()
#

将字符串每个单词的所有字母替换为大写,并返回

func ToTitle(s string) string 

ToLower()
#

将字符串中全部字母转换为小写,并返回

func ToLower(s string) string

ToUpper()
#

将字符串中全部字母转换为大写,并返回

func ToUpper(s string) string

Replace()
#

从左往右将字符串s中的字符串old替换为new,替换n次结束并返回,如果n小于0,则全部替换

func Replace(s, old, new string, n int) string

ReplaceAll()
#

将字符串s中的字符串old全部替换为new

func ReplaceAll(s, old, new string) string

去除
#

Trim()
#

从字符串s的两侧删除字符串cutset,并返回

func Trim(s string, cutset string) string

TrimSpace()
#

从字符串s的两侧删除空白和其他预定义字符,包括"\t","\n","\x0B","\r"," ",并返回

func TrimSpace(s string) string

TrimPrefix()
#

从字符串s的开头删除前缀字符串cutset,并返回,只删除一次

func TrimPrefix(s string, cutset string) string

TrimSuffix()
#

从字符串s的开头删除后缀字符串cutset,并返回,只删除一次

func TrimSuffix(s string, cutset string) string

TrimLeft()
#

从字符串s的左边开始删除字符串cutset,并返回,如果左边有连续的cutset,则会全部删除

func TrimLeft(s string, cutset string) string

TrimRight()
#

从字符串s的右边开始删除字符串cutset,并返回,如果右边有连续的cutset,则会全部删除

func TrimRight(s string, cutset string) string

比较
#

除了==进行比较以外,strings还提供了两种比较方法

Compare()
#

比较字符串a和b的大小,如果相等返回0,如果a大于b返回大于0的数

func Compare(a, b string) int

EqualFold()
#

判断两个字符串是否相当,不区分大小写

func EqualFold(s, t string) bool

拆分
#

Split()
#

将字符串s以字符串sep分割为子串,并返回切片,子串中不包含sep

func Split(S string, sep string) []string

SplitN()
#

从左往右将字符串s以字符串sep分割为子串n次,并返回切片,最后一个子字符串将是未拆分的部分

func SplitN(s, sep string, n int) []string

SplitAfter()
#

将字符串s分割为若干个以sep结尾的字串,并返回切片,子串中包含sep

func SplitAfter(S String, sep string) []string

拼接
#

Repeat()
#

将字符串s重复count次返回,count必须大于等于0

func Repeat(s string, count int) string

Join()
#

将切片stringSlice中的每个元素字符串以字符串sep拼接为新字符串并返回

func Join(stringSlice []string, sep string) string
标准包 - 点击查看当前系列文章
§ 3、strings 「 当前文章 」