Go:标准库

空扰寡人 提交于 2020-03-11 01:19:31

参考:知乎
参考:Go语言标准库
参考:Go标准库

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、字符串是否有某个前缀(后缀)

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!