标准库-strings包

Posted chaoyangxu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了标准库-strings包相关的知识,希望对你有一定的参考价值。

 

strings包

/*
用来处理字符串的。
检索子串
格式化
比较大小
裁剪
炸碎
拼接

*/

 

 1 package main
 2 
 3 import (
 4     "fmt"
 5     "strings"
 6 )
 7 
 8 func main() {
 9 
10     //判断hello里有没有el字符
11     fmt.Println(strings.Contains("hello","el"))  //true
12 
13     //asshole里只要有任意一个hello的字符就为true
14     fmt.Println(strings.ContainsAny("hello","asshole"))  //true
15 
16     //判断是否包含任意字符,单个字符其实会转换成序号
17     fmt.Println(strings.ContainsRune("hello",h))     //注意单引号 true
18 
19 
20     //字符和序号之间转换
21     fmt.Printf("%U
",h)    //U+0068
22     fmt.Printf("%c
",0x0068) //h
23 
24 
25     //直接拿序号进行判断
26     fmt.Println(strings.ContainsRune("hello",0x0068))      //true
27 
28     //子串在大串里出现的序号是多少
29     fmt.Println(strings.Index("abcdef","a"))        //0
30     fmt.Println(strings.Index("abcdef","d"))        //3
31     fmt.Println(strings.Index("abcdef","g"))        //-1
32 
33     //子串任意是否在大串里包含,如果包含那么首位的序号显示出来
34     fmt.Println(strings.IndexAny("abcdef","fght"))  //5
35 
36     //查看这个序号是否在大串里出现,出现就显示序号,没有就-1
37     fmt.Println(strings.IndexRune("abcdef",0x0068))     //-1
38     fmt.Println(strings.IndexRune("abcdefh",0x0068))    //6
39 
40 
41 }

 

 字符串格式化

 

 1 package main
 2 
 3 import (
 4     "fmt"
 5     "strings"
 6 )
 7 
 8 func main() {
 9 
10     fmt.Println(strings.ToUpper("HeLLO"))  //全部变为大写  HELLO
11     fmt.Println(strings.ToLower("HeLLO"))  //全部变为小写  hello
12     fmt.Println(strings.Title("hello"))    //首字母大写     Hello
13 
14 }

 

字符串比较大小

 1 package main
 2 
 3 import (
 4     "fmt"
 5     "strings"
 6 )
 7 
 8 func main() {
 9 
10     //比较首位字符的序号是否比后面首位字符大,如果不大就为-1
11     //如果首位俩个相同,会继续比较第二位的序号
12     fmt.Println(strings.Compare("a","b"))        //-1
13     fmt.Println(strings.Compare("c","a"))        //1
14     fmt.Println(strings.Compare("a","a"))        //0
15 
16 }

 

 

 字符串的裁剪

 

 1 package main
 2 
 3 import (
 4     "fmt"
 5     "strings"
 6 )
 7 
 8 func main() {
 9 
10     //去掉头和尾的空格
11     fmt.Println(strings.TrimSpace("   aa bb cc  ")) //aa bb cc
12 
13     //去掉前缀
14     fmt.Println(strings.TrimPrefix("dddaa bb cc  ", "ddd")) //aa bb cc
15 
16     //去掉后缀
17     fmt.Println(strings.TrimSuffix("aa bb ccddd", "ddd")) //aa bb cc
18 
19     //去掉头和尾的a 中间的a不去掉
20     fmt.Println(strings.Trim("aabaacaa", "a")) //baac
21 
22     //只去头部
23     fmt.Println(strings.TrimLeft("aabaacaa", "a")) //baacaa
24 
25     //只去尾部
26     fmt.Println(strings.TrimRight("aabaacaa", "a")) //aabaac
27 
28     //根据后面的函数的判断,如果包含f或u就去掉,不包含的不去掉。
29     fmt.Println(strings.TrimFunc("uabcf", fileter)) //abc
30 
31 }
32 
33 
34 
35 //哪个字符返回True 哪个字符就上黑名单
36 func fileter(char rune) bool {
37     if char == f || char == u {
38         return true
39     } else {
40         return false
41     }
42 }

 

 

 

 

 

 

以上是关于标准库-strings包的主要内容,如果未能解决你的问题,请参考以下文章

小白学标准库之 flag

Go语言标准库之flag

golang标准库-strings

Python标准库01 正则表达式 (re包)

Go语言标准库之strconv

71.C++标准库类型string