1、文本
1、strings — 字符串操作
1、字符串比较
字符串大小比较:
/* Compare 函数,用于比较两个字符串的大小,如果两个字符串相等,返回为 0。
* 如果 a 小于 b ,返回 -1 ,反之返回 1 。
* 不推荐使用这个函数,直接使用 == != > < >= <= 等一系列运算符更加直观。
*/
func Compare(a, b string) int
字符串相等比较:
// EqualFold 函数,计算 s 与 t 忽略字母大小写后是否相等。
func EqualFold(s, t string) bool
2、是否存在某个字符
本质上他的底层实现也是通过遍历string数组去获取包含的字符串下标,如果返回正数下标则表示存在,否则表示不存在。
字符串包含:
官方注释:Contains reports whether subslice is within b.
// 子串 substr 在 s 中,返回 true
func Contains(s, substr string) bool
字符串包含任意:
官方注释:ContainsAny reports whether any of the UTF-8-encoded code points in chars are within b.
// chars 中任何一个 Unicode 代码点在 s 中,返回 true
func ContainsAny(s, chars string) bool
字符串包含rune的内容:
官方注释:ContainsRune reports whether the rune is contained in the UTF-8-encoded byte slice b.
// Unicode 代码点 r 在 s 中,返回 true
func ContainsRune(s string, r rune) bool
3、子串出现次数
在 Go 中,查找子串出现次数即字符串模式匹配,实现的是 Rabin-Karp 算法。
// Count counts the number of non-overlapping instances of substr in s.
// If substr is an empty string, Count returns 1 + the number of Unicode code points in s.
func Count(s, sep string) int
有几个注意点:
- 当sep(匹配字符串)为空时,Count 的返回值是:utf8.RuneCountInString(s) + 1,这边要注意的是中文的长度和调用计算方式
- Count 是计算子串在字符串中出现的无重叠的次数
4、字符串分割为[]string
1、用一个或多个连续的空格分隔字符串 - Fields :
Fields 用一个或多个连续的空格分隔字符串 s,返回子字符串的数组(slice)。如果字符串 s 只包含空格,则返回空列表 ([]string 的长度为 0)。其中,空格的定义是 unicode.IsSpace
// Fields splits the string s around each instance of one or more consecutive white space
// characters, as defined by unicode.IsSpace, returning a slice of substrings of s or an
// empty slice if s contains only white space.
func Fields(s string) []string
2、通过代码点进行分隔 - FieldsFunc
FieldsFunc 用这样的 Unicode 代码点 c 进行分隔:满足 f© 返回 true。该函数返回[]string。如果字符串 s 中所有的代码点 (unicode code points) 都满足 f© 或者 s 是空,则 FieldsFunc 返回空 slice。
// FieldsFunc splits the string s at each run of Unicode code points c satisfying f(c)
// and returns an array of slices of s. If all code points in s satisfy f(c) or the
// string is empty, an empty slice is returned.
// FieldsFunc makes no guarantees about the order in which it calls f(c).
// If f does not return consistent results for a given c, FieldsFunc may crash.
func FieldsFunc(s string, f func(rune) bool) []string
3、分隔函数 - Split
通过分隔符sep对字符串s进行切割,如果 sep 为空,相当于分成一个个的 UTF-8 字符,也就是说字符串有多少个字符就会被切割成多少个大小的string数组
//Split slices s into all substrings separated by sep and returns a slice of the substrings between those separators.
func Split(s, sep string) []string
4、
5、
6、
5、字符串是否有某个前缀(后缀)
来源:CSDN
作者:了-凡
链接:https://blog.csdn.net/qq_34326321/article/details/104779243