1. func Compare(a, b string) int {}

比较返回一个按字典顺序比较两个字符串的整数。如果a == b则结果为0,如果a <b则结果为-1,如果a> b则结果为+1。 此外:仅包含与包字节对称的比较。使用内置字符串比较运算符==,<,>等通常更清晰,速度更快。

fmt.Println(strings.Compare(“a”,“b”)) fmt.Println(strings.Compare(“a”,“a”)) fmt.Println(strings.Compare(“b”,“a”) )

输出: -1 0 1 注意:使用大于等于小于同样可以得到同样的答案。

2. func Contains(s, substr string) bool {}

判断字符串substr是否在字符串s中,返回类型为布尔值。

fmt.Println(strings.ContainsAny("team", "i")) fmt.Println(strings.ContainsAny("failure", "i&k")) fmt.Println(strings.ContainsAny("failure", "")) fmt.Println(strings.ContainsAny("", ""))

输出: false true false false

3. func ContainsRune(s string, r rune) bool{}

将s转化为unicode编码,然后判断r是否在其中,返回值类型为bool值 //查找字符串是否包含特定的Unicode代码点。 //例如,小写字母“a”的代码点是97.

fmt.Println(strings.ContainsRune("aardvark", 97))

fmt.Println(strings.ContainsRune("timeout", 97))

输出: true false

4. func Count(s, substr string) int{}

统计字符串s中substr字符串的个数,返回值类型为×××。 如果substr是空字符串,则Count返回1 + s包含的个数

fmt.Println(strings.Count("cheese", "e"))

fmt.Println(strings.Count("five", "")) //在每个符文之前和之后

输出: 3 5

5. func EqualFold(s,t string)bool{}

不考虑大小写,判断字符串s、t是否相同,返回值类型为布尔值

fmt.Println(strings.EqualFold("Go", "go"))

输出: true

6. func Fields(s string) []string{}

按照空格进行切分,将字符串s切割成一个切片。返回值类型为切片类型

fmt.Printf("Fields are:%q", strings.Fields("foo bar baz"))

输出:

Fields are:["foo" "bar" "baz"]

7. func FieldsFunc(s string, f func(rune) bool) []string{}

FieldsFunc在每次运行满足f(c)的Unicode代码点c时拆分字符串s,并返回s的切片数组。如果s中的所有代码点满足f(c)或字符串为空,则返回空切片。FieldsFunc不保证它调用f(c)的顺序。如果f没有返回给定c的一致结果,则FieldsFunc可能会崩溃。

f := func(c rune) bool { return !unicode.IsLetter(c) && !unicode.IsNumber(c) } fmt.Printf("Fields is %q", strings.FieldsFunc("fool; bar2,baz3, ..", f)) 

输出:Fields is ["fool" "bar2" "baz3"]

8. func HasPrefix(s, prefix string) bool{}

判断s字符串是否是以prefix字符串开头的,返回值类型为布尔值 注意:若prefix为空字符串,则为恒真

fmt.Println(strings.HasPrefix("Gopher", "Go")) fmt.Println(strings.HasPrefix("Gopher", "c")) fmt.Println(strings.HasPrefix("Gopher", ""))

Output: true false true

9. func HasSuffix(s, suffix string) bool{}

判断s字符串是否是以prefix字符串结束的,返回值类型为布尔值 注意:若prefix为空字符串,则为恒真

fmt.Println(strings.HasSuffix("Amigo", "go")) fmt.Println(strings.HasSuffix("Amigo", "o")) fmt.Println(strings.HasSuffix("Amigo", "Ami")) fmt.Println(strings.HasSuffix("Amigo", ""))

Output: true true false true

9. func Index(s, substr string) int{}

返回第一个s中包含substr 的字符的索引,若无则返回-1

fmt.Println(strings.Index("Amigo", "go")) fmt.Println(strings.Index("Amigo", "o")) fmt.Println(strings.Index("Amigo", "sdrg")) fmt.Println(strings.Index("Amigo", ""))

  

Output: 3 4 -1 0

10. func IndexAny(s, chars string) int{}

先判断s与chars中是否有相同的元素,若有则返回相同元素在s中的第一个索引,若无,则返回-1

fmt.Println(strings.IndexAny("Amooigo", "om")) fmt.Println(strings.IndexAny("Amooigo", "o")) fmt.Println(strings.IndexAny("Amooigo", "sdrg")) fmt.Println(strings.IndexAny("Amooigo", ""))

  

输出: 1 2 5 -1

11. func IndexByte(s string, c byte) int{}

IndexByte返回s中第一个c实例的索引,如果s中不存在c,则返回-1。

fmt.Println(strings.IndexByte("Amooigo", 'm')) fmt.Println(strings.IndexByte("Amooigo", 'o')) fmt.Println(strings.IndexByte("Amooigo", 's')) fmt.Println(strings.IndexByte("Amooigo", ' '))

输出: 1 2 -1 -1

12. func IndexFunc(s string, f func(rune) bool) int{}

IndexFunc将索引返回到满足f(c)的第一个Unicode代码点的s,如果没有,则返回-1。

f := func(c rune) bool { return unicode.Is(unicode.Han, c) } fmt.Println(strings.IndexFunc("Hello,world", f)) fmt.Println(strings.IndexFunc("Hello, 世界", f)) 

输出: -1 7

13. func IndexRune(s string, r rune) int{}

IndexRune返回Unicode代码点r的第一个实例的索引,如果s中不存在符文,则返回-1。如果r是utf8.RuneError,则返回任何无效的UTF-8字节序列的第一个实例。

fmt.Println(strings.IndexRune("Hello,world", 'w')) fmt.Println(strings.IndexRune("Hello,世界!", '界'))

输出: 6 9

14. func Join(a []string, sep string) string{}

将切片按照sep进行连接,形成一个字符串

s := []string{"foo", "bar", "baz"} fmt.Println(strings.Join(s, "-"))

Output: foo-bar-baz

15. func LastIndex(s, substr string) int{}

返回字符串s包含substr最后的一个索引值,没有找到就返回-1

fmt.Println(strings.Index("go gopher", "go")) fmt.Println(strings.LastIndex("go gopher", "test")) fmt.Println(strings.LastIndex("go gopher", "go")) 

Output: 0 -1 3

16. func LastIndexAny(s, chars string) int{}

LastIndexAny从s中的字符返回任何Unicode代码点的最后一个实例的索引,如果s中没有来自chars的Unicode代码点,则返回-1。

fmt.Println(strings.LastIndexAny("gogopher", "gp")) fmt.Println(strings.LastIndexAny("gogopher", "jm")) fmt.Println(strings.LastIndexAny("gogopher", "g"))

输出: 4 -1 2

17. func LastIndexByte(s string, c byte) int{}

LastIndexByte返回s中最后一个c实例的索引,如果s中不存在c,则返回-1。 输出: 10 8 -1

18. func LastIndexFunc(s string, f func(rune) bool) int{}

LastIndexFunc将索引返回到满足f(c)的最后一个Unicode代码点的s,如果没有,则返回-1。

fmt.Println(strings.LastIndexFunc("go 123", unicode.IsNumber)) fmt.Println(strings.LastIndexFunc("go 123", unicode.IsLetter)) fmt.Println(strings.LastIndexFunc("123", unicode.IsLetter))

  

输出: 5 1 -1

19. func Map(mapping func(rune) rune, s string) string{}

Map返回字符串s的副本,其中所有字符都根据映射函数进行了修改。如果映射返回负值,则从字符串中删除该字符而不进行替换。

rot13 := func(r rune) rune { switch { case r >= 'A' && r <= 'Z': return 'A' + (r-'A'+13)%26 case r >= 'a' && r <= 'z': return 'a' + (r-'a'+13)%26 } return r } fmt.Println(strings.Map(rot13, "'Twas brillig and the slithy gopher..."))

 

Output: 'Gjnf oevyyvt naq gur fyvgul tbcure...

20. func Repeat(s string, count int) string{}

Repeat返回一个由字符串s的计数副本组成的新字符串。 如果count为负数或(len(s)* count)的结果溢出,则会发生混乱。

fmt.Println("ba" + strings.Repeat("na", 2))

Output: banana

21. func Replace(s, old, new string, n int) string{}

取代字符串s中的old为new,n为取代的次数

fmt.Println(strings.Replace("oink oink oink", "k", "ky", 2)) fmt.Println(strings.Replace("oink oink oink", "oink", "moo", -1))

Output: oinky oinky oink moo moo moo

22. func ReplaceAll(s, old, new string) string{}

将就字符串全部体会为新字符串

fmt.Println(strings.ReplaceAll("oink oink oink", "oink", "moo"))

Output: moo moo moo

23. func Split(s, sep string) []string{}

按照sep规则进行切割s字符串,返回值为切片类型

fmt.Printf("%q\n", strings.Split("a,b,c", ",")) fmt.Printf("%q\n", strings.Split("a man a plan a canal panama", "a ")) fmt.Printf("%q\n", strings.Split(" xyz ", "")) fmt.Printf("%q\n", strings.Split("", "Bernardo O'Higgins"))

  

Output:

["a" "b" "c"]

["" "man " "plan " "canal panama"]

[" " "x" "y" "z" " "]

[""]

24. func SplitAfter(s, sep string) []string{}

SplitAfter在每个sep实例之后切入所有子字符串并返回这些子字符串的切片。 如果s不包含sep且sep不为空,则SplitAfter返回长度为1的切片,其唯一元素为s。 如果sep为空,则SplitAfter在每个UTF-8序列之后拆分。如果s和sep都为空,则SplitAfter返回一个空切片。 它相当于SplitAfterN,计数为-1。

fmt.Printf("%q\n", strings.SplitAfter("a,b,c", ","))

Output: ["a," "b," "c"]

25. func SplitAfterN(s, sep string, n int) []string{}

SplitAfterN在每个sep实例之后切入子字符串并返回这些子字符串的切片。 计数确定要返回的子字符串数: n> 0:最多n个子串; 最后一个子字符串将是未分割的余数。 n == 0:结果是nil(零子串) n <0:所有子串 s和sep的边缘情况(例如,空字符串)按照SplitAfter文档中的描述进行处理。

fmt.Printf("%q\n", strings.SplitAfterN("a,b,c", ",", 2))

Output: ["a," "b,c"]

26. func Title(s string) string{}

Title返回字符串s的副本,其中包含所有Unicode字母,这些字母开始映射到其标题大小写的单词。 BUG(rsc):标题Title用于单词边界的规则不能正确处理Unicode标点符号。

fmt.Println(strings.Title("her royal highness"))

Output: Her Royal Highness

27. func ToLower(s string) string{}

ToLower返回字符串s的副本,其中所有Unicode字母都映射到它们的小写字母。

fmt.Println(strings.ToLower("Gopher")) 

Output: gopher

29. func ToLowerSpecial(c unicode.SpecialCase, s string) string{}

ToLowerSpecial使用c指定的大小写映射返回字符串s的副本,其中所有Unicode字母都映射到它们的小写字母。

fmt.Println(strings.ToLowerSpecial(unicode.TurkishCase, "Önnek İş"))

Output: önnek iş

30. func ToUpper(s string) string{}

将s字符串转换为大写

fmt.Println(strings.ToUpper("Gopher"))

Output: GOPHER

31. func ToUpperSpecial(c unicode.SpecialCase, s string) string{}

ToUpperSpecial使用c指定的大小写映射返回字符串s的副本,其中所有Unicode字母都映射到它们的大写字母。

fmt.Println(strings.ToUpperSpecial(unicode.TurkishCase, "Önnek İş"))

Output: ÖNNEK İŞ

32. func Trim(s string, cutset string) string{}

Trim返回字符串s的一个片段,其中包含cutset中包含的所有前导和尾随Unicode代码点。

fmt.Print(strings.Trim("你好,Gophers !!!", "!")) 

输出:你好,Gophers

33. func TrimFunc(s string, f func(rune) bool) string{}

TrimFunc返回字符串s的一个片段,其中所有前导和尾随的Unicode代码点c都满足f(c)被删除。

fmt.Print(strings.TrimFunc("¡¡¡Hello, Gophers!!!", func(r rune) bool { return !unicode.IsLetter(r) && !unicode.IsNumber(r) }))

Output: Hello, Gophers

34. func TrimLeft(s string, cutset string) string{}

TrimLeft返回字符串s的一个片段,其中包含cutset中包含的所有前导Unicode代码点。 要删除前缀,请改用TrimPrefix。

fmt.Print(strings.TrimLeft("¡¡¡Hello, Gophers!!!", "!¡"))

Output: Hello, Gophers!!!

35. func TrimLeftFunc(s string, f func(rune) bool) string{}

TrimLeftFunc返回字符串s的一个片段,其中所有前导的Unicode代码点c都满足f(c)被删除。

fmt.Print(strings.TrimLeftFunc("¡¡¡Hello, Gophers!!!", func(r rune) bool { return !unicode.IsLetter(r) && !unicode.IsNumber(r) })) 

Output: Hello, Gophers!!!

36. func TrimPrefix(s, prefix string) string{}

TrimPrefix返回s而没有提供的前导前缀字符串。如果s不以prefix开头,则返回s不变。

var s = "¡¡¡Hello, Gophers!!!" s1 := strings.TrimPrefix(s, "¡¡¡Hello, ") fmt.Println(s1) s2 := strings.TrimPrefix(s, "¡¡¡Howdy, ") fmt.Println(s2)

Output:

Gophers!!!

¡¡¡Hello, Gophers!!!

37. func TrimRight(s string, cutset string) string{}

TrimRight返回字符串s的一个片段,删除了cutset中包含的所有尾随Unicode代码点。 要删除后缀,请改用TrimSuffix。

fmt.Print(strings.TrimRight("¡¡¡Hello, Gophers!!!", "!¡"))

Output: ¡¡¡Hello, Gophers

38. func TrimRightFunc(s string, f func(rune) bool) string{}

TrimRightFunc返回字符串s的一个片段,其中所有尾随的Unicode代码点c满足f(c)被删除。

fmt.Print(strings.TrimRightFunc("¡¡¡Hello, Gophers!!!", func(r rune) bool { return !unicode.IsLetter(r) && !unicode.IsNumber(r) }))

  

Output: ¡¡¡Hello, Gophers

39. func TrimSpace(s string) string{}

TrimSpace返回字符串s的一部分,删除所有前导和尾随空格,如Unicode所定义。

fmt.Println(strings.TrimSpace(" \t\n Hello, Gophers \n\t\r\n"))

Output: Hello, Gophers

40. unc TrimSuffix(s, suffix string) string{}

TrimSuffix返回s而没有提供的尾随后缀字符串。如果s不以后缀结尾,则s保持不变。

var s = "¡¡¡Hello, Gophers!!!" s1 := strings.TrimSuffix(s, ", Gophers!!!") s2 := strings.TrimSuffix(s, ", Marmots!!!") fmt.Println(s1) fmt.Println(s2)

  

Output:

¡¡¡Hello

¡¡¡Hello, Gophers!!!

golang --strings 下常用函数api的更多相关文章

  1. Linux下常用函数-字符串函数

    inux下常用函数-字符串函数 atof(将字符串转换成浮点型数)  相关函数   atoi,atol,strtod,strtol,strtoul 表头文件   #include <stdlib ...

  2. golang基础学习-strings包常用函数学习

    package main import ( "fmt" "strings" ) //StrFunc 字符串说明 func main() { var testSt ...

  3. 【CUDA】Windows 下常用函数头文件

    CUDA 函数 头文件 __global__ __device__ #include <cuda_runtime.h> threadIdx #include <device_laun ...

  4. golang——strconv包常用函数

    1.func ParseBool(str string) (value bool, err error) 返回字符串表示的bool值.它接受1.0.t.f.T.F.true.false.True.Fa ...

  5. golang --- time包常用函数以及基础的类型转换

    1.[]byte转为string: package main import ( "fmt" ) func main() { data := [4]byte{0x31, 0x32, ...

  6. TensorFlow 学习(七) — 常用函数 api、tf.nn 库

    0. 四则运算 平方:tf.square(),开方:tf.sqrt() tf.add().tf.sub().tf.mul().tf.div().tf.mod().tf.abs().tf.neg() 1 ...

  7. Appium常用的API函数

    在学习应用一个框架之前,应该了解一下这个框架的整体结构或是相应的API函数.这篇文章还不错:http://blog.sina.com.cn/s/blog_68f262210102vzf9.html,就 ...

  8. Appium 常用的API函数

    常用的API函数[转] http://blog.sina.com.cn/s/blog_68f262210102vzf9.html 获取信息类API (1)获取默认系统语言对应的Strings.xml文 ...

  9. 第七节,TensorFlow编程基础案例-TensorBoard以及常用函数、共享变量、图操作(下)

    这一节主要来介绍TesorFlow的可视化工具TensorBoard,以及TensorFlow基础类型定义.函数操作,后面又介绍到了共享变量和图操作. 一 TesnorBoard可视化操作 Tenso ...

随机推荐

  1. webpack本地开发起服务只能用localhost和端口号打开,不能用本地ip地址打开

    这时候记得在webpack配置文件中 devServer中加host:'0.0.0.0' 或者在启动命令中加 --host 0.0.0.0

  2. MySQL整形手工注入

    0x1 判断注入点: http://www.xxx.org/members.php?id=1 and 1=1 --+ # ture http://www.xxx.org/members.php?id= ...

  3. c++和c动态申请二维数组

    这是我面试中遇到的一道题,用c和c++分别申请一个二维数组,int **res,要求申请后的可以使用res[3][4]这一类防存方式. 这个是没有错误检查的版本. 答案: c++语言的版本 int * ...

  4. Oracle使用命令行登录提示ERROR: ORA-01017: invalid username/password; logon denied

    刚在Windows上面安装好Oracle 10g,刚开始使用PLSQLDevelop软件登录提示  not logged on ,然后使用命令行登录提示 ERROR: ORA-01017: inval ...

  5. nrm : 无法加载文件 C:\Users\TANG\AppData\Roaming\npm\nrm.ps1,因为在此系统上禁止运行脚本。

    1.win+s 搜索powershell 以管理身份运行 2.使用set-ExecutionPolicy RemoteSigned命令将计算机上的执行策略更改为 RemoteSigned,输入Y确定 ...

  6. index.jsp

    <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding= ...

  7. appium 基础:常用api接口(2)

    一.获取手机分辨率 size=driver.get_window_size()#获取手机屏幕大小,分辨率 print(size)#{'width': 720, 'height': 1280} 得到的是 ...

  8. 201871020225-牟星源《面向对象程序设计(java)》第十一周学习总结

    201871020225-牟星源<面向对象程序设计(java)>第十一周学习总结 博文正文开头: 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu ...

  9. Fedora增加rc-local服务开机自启项

      最近新装了一台Fedora 30系统,服务已经正常运行起来了,但是偶然发现当我的系统重启后,写在rc.local配置文件里的命令居然没生效,导致我系统重启,但是服务却没有正常运行,后来经过一番查阅 ...

  10. T430 Linux Setting Memo

    touchpad:xinput listxinput --disable 11 dns setting:/etc/resolv.conf vpn:@Darkduck19XX yum-config-ma ...