golang strings api接口

1函数

函数名 参数 返回值 解释
Clone s string string Clone 返回 s 的一份新副本。它保证将 s 的副本放入新的分配中,这在仅保留较大字符串的一小部分子字符串时非常重要。使用 Clone 可以帮助此类程序使用更少的内存。当然,由于使用 Clone 会进行复制,因此过度使用 Clone 会使程序使用更多内存。Clone 通常很少使用,并且仅在分析表明需要时才使用。对于长度为零的字符串,将返回字符串"",并且不进行任何分配。
Compare a, b string int Compare 返回按字典顺序比较两个字符串的整数。如果 a== b,则结果为 0;如果 a < b,则结果为 -1;如果 a > b,则结果为 +1。当您需要执行三向比较(例如使用 slices.SortFunc)时,请使用Compare。使用内置字符串比较运算符==、<、>等通常更清晰且更快。
Contains s, substr string bool 包含报告 substr 是否在 s 内。
ContainsAny s, chars string bool ContainsAny 报告 chars 中的任何 Unicode 代码点是否在 s 内。chars为空时返回false
ContainsFunc s string , f func( rune ) bool bool ContainsFunc 报告 s 内的任何 Unicode 代码点 r 是否满足 f®。
ContainsRune s string, r rune bool ContainsRune 报告 Unicode 代码点 r 是否在 s 内。
Count s, substr string int Count 计算 s 中不重叠的 substr 实例的数量。如果 substr 为空字符串,Count 将返回 1 + s 中的 Unicode 代码点数量。
Cut s, sep string before, after string, found bool 剪切 s 中第一个 sep 周围的片段,返回 sep 之前和之后的文本。结果报告 sep 是否出现在 s 中。如果 sep 未出现在 s 中,则 cut 返回 s, "", false。
CutPrefix s, prefix string after string, found bool CutPrefix 返回不带提供的前导前缀字符串的 s,并报告是否找到前缀。如果 s 不以前缀开头,CutPrefix 返回 s, false。如果前缀为空字符串,CutPrefix 返回 s, true。
CutSuffix s, suffix string before string, found bool CutSuffix 返回不带提供的结束后缀字符串的 s,并报告是否找到后缀。如果 s 不以后缀结尾,CutSuffix 将返回 s, false。如果后缀为空字符串,CutSuffix 将返回 s, true。
EqualFold s, t string bool EqualFold 报告 s 和 t(解释为 UTF-8 字符串)在简单的 Unicode 大小写折叠(这是一种更通用的大小写不敏感形式)下是否相等。
Fields s string [] string Fields 将字符串 s 拆分为一个或多个连续空格字符的每个实例,如unicode.IsSpace所定义,并返回 s 的子字符串切片;如果 s 仅包含空格,则返回一个空切片。
FieldsFunc s string , f func( rune ) bool [] string FieldsFunc 在满足 f© 的每次 Unicode 代码点 c 处拆分字符串 s,并返回 s 切片的数组。如果 s 中的所有代码点都满足 f© 或字符串为空,则返回一个空切片。FieldsFunc 不保证其调用 f© 的顺序,并假定 f 对于给定的 c 始终返回相同的值。
HasPrefix s, prefix string bool HasPrefix 报告字符串 s 是否以前缀开头。prefix为空返回true
HasSuffix s, suffix string bool HasSuffix 报告字符串 s 是否以后缀结尾。suffix为空返回true
Index s, substr string int Index 返回 s 中 substr 的第一个实例的索引(字节数),如果 s 中不存在 substr,则返回 -1。
IndexAny s, chars string int IndexAny 返回 s 中字符的任何 Unicode 代码点的第一个实例的索引,如果 s 中不存在字符的 Unicode 代码点,则返回 -1。
IndexByte s string, c byte int IndexByte 返回 s 中 c 的第一个实例的索引,如果 c 不在 s 中,则返回 -1。
IndexFunc s string , f func( rune ) bool int IndexFunc 返回 s 中第一个满足 f© 的 Unicode 代码点的索引,如果没有,则返回 -1。
IndexFunc s string, f func(rune) bool int IndexRune 返回 Unicode 代码点 r 的第一个实例的索引,如果 s 中不存在 rune,则返回 -1。如果 r 是utf8.RuneError,则返回任何无效 UTF-8 字节序列的第一个实例。
Join elems []string, sep string string Join 将其第一个参数的元素连接起来以创建单个字符串。分隔符字符串 sep 位于结果字符串中的元素之间。
LastIndex s, substr string int LastIndex 返回 s 中 substr 的最后一个实例的索引,如果 s 中不存在 substr,则返回 -1。
LastIndexAny s, chars string int LastIndexAny 返回 s 中字符的任何 Unicode 代码点的最后一个实例的索引,如果 s 中不存在字符的 Unicode 代码点,则返回 -1。
LastIndexByte s string, c byte int LastIndexByte 返回 s 中 c 的最后一个实例的索引,如果 c 在 s 中不存在,则返回 -1。
LastIndexFunc s string , f func( rune ) bool int LastIndexFunc 返回满足 f© 的最后一个 Unicode 代码点的 s 索引,如果没有,则返回 -1。
Map mapping func( rune ) rune , s string string Map 返回字符串 s 的副本,其中所有字符均根据映射函数进行了修改。如果映射返回负值,则该字符将从字符串中删除,且不进行替换。
Repeat s string, count int string Repeat 返回由字符串 s 的 count 个副本组成的新字符串。如果 count 为负数或者 (len(s) * count) 的结果溢出,则会引起混乱。
Replace s, old, new string, n int string Replace 返回字符串 s 的副本,其中前 n 个不重叠的 old 实例被 new 替换。如果 old 为空,它会匹配字符串的开头和每个 UTF-8 序列之后,最多可为 k-rune 字符串产生 k+1 个替换。如果 n < 0,则替换次数不受限制。
ReplaceAll s, old, new string string ReplaceAll 返回字符串 s 的副本,其中所有不重叠的 old 实例均被 new 替换。如果 old 为空,它会在字符串的开头和每个 UTF-8 序列之后进行匹配,从而为 k-rune 字符串产生最多 k+1 个替换。
Split s, sep string [] string 将切片 s 拆分为所有由 sep 分隔的子字符串,并返回这些分隔符之间的子字符串切片。如果 s 不包含 sep 且 sep 不为空,则 Split 返回长度为 1 的切片,其唯一元素是 s。如果 sep 为空,Split 会在每个 UTF-8 序列后进行拆分。如果 s 和 sep 都为空,Split 会返回一个空切片。它相当于计数为 -1 的 SplitN 。要围绕分隔符的第一个实例进行拆分
SplitAfter s, sep string [] string SplitAfter 将 s 切分为 sep 每个实例之后的所有子字符串并返回这些子字符串的切片。如果 s 不包含 sep 且 sep 不为空,则 SplitAfter 返回长度为 1 的切片,其唯一元素是 s。如果 sep 为空,SplitAfter 会在每个 UTF-8 序列后进行拆分。如果 s 和 sep 都为空,SplitAfter 会返回一个空切片。它相当于计数为 -1 的 SplitAfterN 。
SplitAfterN s, sep string , n int [] string SplitAfterN 在 sep 的每个实例之后将 s 切成子字符串并返回这些子字符串的切片。计数决定要返回的子字符串的数量:n > 0:最多有 n 个子字符串;最后一个子字符串将是未分割的余数;n == 0:结果为 nil(零子字符串);n < 0:所有子串。s 和 sep 的边缘情况(例如空字符串)按照SplitAfter文档中的描述进行处理。
SplitN s, sep string , n int [] string SplitN 将 s 切成由 sep 分隔的子字符串并返回这些分隔符之间的子字符串切片。计数决定要返回的子字符串的数量:n > 0:最多有 n 个子字符串;最后一个子字符串将是未分割的余数;n == 0:结果为 nil(零子字符串);n < 0:所有子串。s 和 sep 的边缘情况(例如空字符串)按照Split文档中的描述进行处理。要围绕分隔符的第一个实例进行拆分,请参阅剪切。
ToLower s string string ToLower 返回所有 Unicode 字母都映射为小写字母的 s。
ToLowerSpecial c unicode . SpecialCase , s string string ToLowerSpecial 返回字符串 s 的副本,其中所有 Unicode 字母使用 c 指定的大小写映射映射到小写。
ToTitle s string string ToTitle 返回字符串 s 的副本,其中所有 Unicode 字母都映射到其 Unicode 标题大小写。
ToTitleSpecial c unicode . SpecialCase , s string string ToTitleSpecial 返回字符串 s 的副本,其中所有 Unicode 字母都映射到其 Unicode 标题大小写,并优先考虑特殊大小写规则。
ToUpper s string string ToUpper 返回所有 Unicode 字母都映射为大写字母的 s。
ToUpperSpecial c unicode . SpecialCase , s string string ToUpperSpecial 返回字符串 s 的副本,其中所有 Unicode 字母使用 c 指定的大小写映射映射到大写。
ToValidUTF8 s, replacement string string ToValidUTF8 返回字符串 s 的副本,其中每次运行的无效 UTF-8 字节序列都被替换字符串所替换,该替换字符串可能是空的。
Trim s, cutset string string Trim 返回字符串 s 的切片,其中 cutset 中包含的所有前导和尾随 Unicode 代码点均被删除。
TrimFunc s string , f func( rune ) bool string TrimFunc 返回字符串 s 的切片,其中所有满足 f© 的前导和尾随 Unicode 代码点 c 均被删除。
TrimLeft s, cutset string string TrimLeft 返回字符串 s 的切片,其中 cutset 中包含的所有前导 Unicode 代码点均被删除。要删除前缀,请改用TrimPrefix。
TrimLeftFunc s string , f func( rune ) bool string TrimLeftFunc 返回字符串 s 的切片,其中所有满足 f© 的前导 Unicode 代码点 c 均被删除。
TrimPrefix s, prefix string string TrimPrefix 返回不带提供的前导前缀字符串的 s。如果 s 不以前缀开头,则 s 原封不动地返回。
TrimRight s, cutset string string TrimRight 返回字符串 s 的切片,其中 cutset 中包含的所有尾随 Unicode 代码点均被删除。要删除后缀,请改用TrimSuffix。
TrimRightFunc s string , f func( rune ) bool string TrimRightFunc 返回字符串 s 的一个切片,其中所有满足 f© 的尾随 Unicode 代码点 c 均被删除。
TrimSpace s string string TrimSpace 返回字符串 s 的切片,其中所有前导和尾随空格均被删除,如 Unicode 所定义。
TrimSuffix s, suffix string string TrimSuffix 返回不带提供的尾随后缀字符串的 s。如果 s 不以后缀结尾,则 s 原封不动地返回。

2Builder类型

函数名 参数 返回值 解释
Cap - int Cap 返回构建器底层字节切片的容量。它是为正在构建的字符串分配的总空间,包括已写入的任何字节。
Grow n int - 如果有必要,Grow 会增加 b 的容量,以保证另外 n 个字节的空间。在 Grow(n) 之后,至少可以将 n 个字节写入 b 而无需进行其他分配。如果 n 为负数,Grow会panic
Len - int Len 返回累积的字节数;b.Len() == len(b.String())。
Reset - - 重置将重置Builder为空。
String - string 字符串返回累积的字符串。
Write p []byte int, error Write 将 p 的内容附加到 b 的缓冲区。Write 总是返回 len§,nil。
WriteByte c byte error WriteByte 将字节 c 附加到 b 的缓冲区。返回的错误始终为 nil。
WriteRune r rune int , error WriteRune 将 Unicode 代码点 r 的 UTF-8 编码附加到 b 的缓冲区。它返回 r 的长度和一个 nil 错误。
WriteString s string int , error WriteString 将 s 的内容附加到 b 的缓冲区。它返回 s 的长度和一个 nil 错误。

3Reader类型

函数名 参数 返回值 解释
NewReader s string * Reader NewReader 返回一个从 s 读取的新Reader。它类似于bytes.NewBufferString,但效率更高且不可写。
Len - int Len 返回字符串未读部分的字节数。
Read b [] byte n int , err error Read 实现了io.Reader接口。
ReadAt b [] byte , off int64 n int , err error ReadAt 实现了io.ReaderAt接口。
ReadByte byte,error ReadByte 实现了io.ByteReader接口。
ReadRune - ch rune,size int,err error ReadRune 实现了io.RuneReader接口。
Reset - s string 重置将重置读取器以从 s 读取。
Seek offset int64 , whence int int64 , error Seek 实现了io.Seeker接口。
Size - int64 Size 返回底层字符串的原始长度。Size 是可通过Reader.ReadAt读取的字节数。返回值始终相同,不受调用任何其他方法的影响。
UnreadByte - error UnreadByte 实现了io.ByteScanner接口。
UnreadRune - error UnreadRune 实现了io.RuneScanner接口。
WriteTo w io . Writer n int64 , err error WriteTo 实现了io.WriterTo接口。

4Replacer类型

用替换项替换字符串列表。多个 goroutine 可以安全地并发使用。

函数名 参数 返回值 解释
NewReplacer oldnew ... string * Replacer NewReplacer从旧字符串、新字符串对列表中 返回一个新的Replacer 。替换按它们在目标字符串中出现的顺序执行,不会出现重叠匹配。旧字符串比较按参数顺序进行。如果给定奇数个参数,NewReplacer 会发生混乱。
Replace s string string Replace 返回已执行所有替换操作的 s 的副本。
WriteString w io . Writer , s string n int , err error WriteString 将 s 写入 w 并执行所有替换。

测试案例

相关推荐
码蜂窝编程官方7 分钟前
【含开题报告+文档+PPT+源码】基于SpringBoot+Vue的虎鲸旅游攻略网的设计与实现
java·vue.js·spring boot·后端·spring·旅游
hccee20 分钟前
C# IO文件操作
开发语言·c#
hummhumm25 分钟前
第 25 章 - Golang 项目结构
java·开发语言·前端·后端·python·elasticsearch·golang
J老熊35 分钟前
JavaFX:简介、使用场景、常见问题及对比其他框架分析
java·开发语言·后端·面试·系统架构·软件工程
AuroraI'ncoding41 分钟前
时间请求参数、响应
java·后端·spring
zmd-zk1 小时前
flink学习(2)——wordcount案例
大数据·开发语言·学习·flink
好奇的菜鸟1 小时前
Go语言中的引用类型:指针与传递机制
开发语言·后端·golang
Alive~o.01 小时前
Go语言进阶&依赖管理
开发语言·后端·golang
花海少爷1 小时前
第十章 JavaScript的应用课后习题
开发语言·javascript·ecmascript
手握风云-1 小时前
数据结构(Java版)第二期:包装类和泛型
java·开发语言·数据结构