• 标准库-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 }

     字符串炸碎

     1 package main
     2 
     3 import (
     4     "fmt"
     5     "strings"
     6 )
     7 
     8 func main() {
     9 
    10     //整个字符串,以什么为分隔符,进行拆分
    11     aa := strings.Split("i love you"," ")
    12     fmt.Println(aa,len(aa))                            //[i love you] 3
    13 
    14 
    15     //整个字符串,以什么为分隔符,进行拆分 -1代表有多碎拆分多碎,如果数字为2 那么就炸2次,第一次是完整的,第二次是 I,love you 2段
    16     bb := strings.SplitN("i love you"," ",-1)
    17     fmt.Println(bb,len(bb))                            //[i love you] 3
    18 
    19     //循环查看拆分的每个字符串
    20     for _,s := range bb{
    21         fmt.Println(s)
    22     }
    23 
    24 
    25     //拆分把分隔符本身包含进去。
    26     cc := strings.SplitAfter("i,love,you,me",",")
    27     fmt.Println(cc,len(cc))                            //[i, love, you, me] 4
    28 
    29 
    30     //拆分把分隔符本身包含进去,炸几次
    31     dd := strings.SplitAfterN("i,love,you,me",",",2)
    32     fmt.Println(dd,len(dd))                            //[i,     love,you,me] 2
    33 
    34 
    35 }

    字符串拼接

     1 package main
     2 
     3 import (
     4     "fmt"
     5     "strings"
     6 )
     7 
     8 func main() {
     9 
    10     //用爱心进行拼接
    11     a1 := strings.Join([]string{"i","love","you"},"") 
    12     fmt.Println(a1)                                //i❤love❤you
    13 
    14 
    15 
    16 }
  • 相关阅读:
    python中的break 和continue的区别
    查询前几条数据
    python logging日志模块
    python unittest单元测试
    python的数据驱动
    SQL求出优秀、及格人数
    SQL查询去掉重复数据
    vue组件路由守卫钩子函数(beforeRouteEnter、beforeRouteUpdate、beforeRouteLeave)
    前端开发,走浏览器缓存真的很烦,拒绝浏览器走缓存从meta标签做起!
    (转)前端开发-发布一个NPM包之最简单易懂流程
  • 原文地址:https://www.cnblogs.com/chaoyangxu/p/11899603.html
Copyright © 2020-2023  润新知