• 字符串函数


    字符串中常用的函数:

    字符串在我们程序开发中,使用的非常多的,常用的函数我们需要掌握:

    1)统计字符串的长度,按字节len(str)

    func main() {
      //golang的编码统一为UTF-8的(ascii码的字符(数字和字母) 占一个字节,汉字占用3个字节 )
      str := "hello北"
      fmt.Println("str len=", len(str))   //按字节返回的
    }

    2)字符串遍历,同时处理有中文的问题 r := []rune(str)

    func main() {
      str2 := "hello北京"
      r := []rune(str2)
      for i := 0; i < len(r); i++ {
        fmt.Printf("字符=%c ", r[i])
      }
    }

    3)字符串转整数: n, err := strconv.Atoi("12")

    func main() {
      n, err := strconv.Atoi("123")
      if err != nil {
        fmt.Println("转换错误", err)
      } else {
        fmt.Println("转换后的结果是", n)
      }
    }

    4)整数转字符串 str = strconv.Itoa(12345)

    func main() {
      str = strconv.Itoa(12345)
      fmt.Printf("str=%v, str=%T ", str, str)
    }

    5)字符串转 []byte: var bytes = []byte("hello go")

    func main() {
      var bytes = []byte("hello go")
      fmt.Printf("bytes=%v ", bytes)
    }

    6)[]byte 转字符串: str = string([]byte{97,98,99})

    func main() {
      str := string([]byte{97,98,99})
      fmt.Printf("str=%v ", str)
    }

    7)10进制转 2, 8, 16进制: str = strconv.FormatInt(123, 2) // 2->8, 16

    func main() {
      str = strconv.FormatInt(123, 2)
      fmt.Printf("123对应的二进制是=%v ", str)
      str = strconv.FormatInt(123, 16)
      fmt.Printf("123对应的16进制是=%v ", str)
    }

    8)查找子串是否在指定的字符串中:strings.Contains("seafood", "foo")   //true

    func main() {
      b := strings.Contains("seafood", "mary")
      fmt.Printf("b=%v ",b) //false
    }

    9)统计一个字符串有几个指定的子串:strings.Count("ceheese", "e")   //4

    func main() {
      num := strings.Count("ceheese", "se")
      fmt.Printf("num=%v ", num)
    }

    10)不区分大小写的字符串比较(==是区分字母大小写的):fmt.Println(strings.EqualFold("abc","Abc"))   //true

    func main() {
      b = strings.EqualFold("abc","Abc")
      fmt.Printf("b=%v ", b)   //true

      fmt.Println("结果", "abc" == "Abc")   //区分大小写
    }

    11)返回子串在字符串第一次出现的index值,如果没有返回-1:strings.Index("NLT_abc", "abc") //4

    func main() {
      index := strings.Index("NLT_abc", "abc")
      fmt.Printf("index=%v ", index)
    }

    12)返回子串在字符串最后一次出现的index,如没有返回-1:strings.LastIndex("go golang", "go")

    func main() {
      index := strings.LastIndex("go golang", "go") //3
      fmt.Printf("index=%v ", index)
    }

    13)将指定的子串替换成另外一个子串:strings.Replace("go go hello","go", "go语言", n) 意思是想把go字母替换成"go语言" n可以指定你希望替换几个,如果n=-1表示全部替换

    func main() {
      str2 := "go go hello"
      str = strings.Replace(str2,"go", "北京啊", -1)
      fmt.Printf("str=%v str2=%v ", str, str2)
    }

    14)按照指定的某个字符,为分隔标识,将一个字符串拆分成字符串数组:strings.Split("hello,world,ok",",")

    func main() {
      strArr := strings.Split("hello,world,ok",",")
      for i := 0; i < len(strArr); i++ {
        fmt.Printf("str[%v]=%v ", i, strArr[i])
      }
      fmt.Printf("strArr=%v ", strArr)
    }

    15)将字符串的字母进行大小写的转换:strings.ToLower("Go")  // go   strings.ToUpper("Go")   //GO

    func main() {
      str = "goLang Hello"
      str = strings.ToLower(str)
      str2 = strings.ToUpper(str)
      fmt.Printf("str=%v ", str)   //golang hello
      fmt.Printf("str2=%v ", str2)   //GOLANG HELLO
    }

    16)将字符串左右两边的空格去掉:strings.TrimSpace(" tn a lone gopher ntrn ")

    func main() {
      str = strings.TrimSpace(" tn a lone gopher ntrn ")
      fmt.Printf("str=%q ", str)
    }

    17)将字符串左右两边指定的的字符去掉: strings.Trim("! hello! ", " !") //["hello"] //将左右两边!和" "去掉

    func main() {
      str = strings.Trim("! he!llo! ", " !")
      fmt.Printf("str=%q ", str)
    }

    18)将字符串左边指定的字符去掉: strings.TrimLeft("! hello!","!") //["hello"]   //将左边!和" "去掉

    19)将字符串右边指定的字符去掉:string.TrimRight("! hello!", "!") //["hello"]   //将右边!和" "去掉

    20)判断字符串是否以指定的字符串开头:strings.HasPrefix("ftp://192.168.10.1", "ftp")   //true

    func main() {
      b = strings.HasPrefix("ftp://192.168.10.1", "ftp")
      fmt.Printf("b=%v ",b)
    }

    21)判断字符串是否以指定的字符串结束:strings.HasSuffix("NLT_abc.jpg", "abc")   //false

  • 相关阅读:
    react第十九单元(react+react-router-dom+redux综合案例1)
    react第十八单元(redux中间件redux-thunk,redux工程目录的样板代码,规范目录结构)
    react第十七单元(redux和组件之间的通信,react-redux的相关api的用法)
    react第十六单元(redux的认识,redux相关api的掌握)
    react第十五单元(react路由的封装,以及路由数据的提取)
    react第十四单元(react路由-react路由的跳转以及路由信息)
    react第十三单元(react路由-react路由的跳转以及路由信息) #课程目标
    react第十二单元(react路由-使用react-router-dom-认识相关的组件以及组件属性)
    如何在ABAP程序中debug宏代码
    ◆◆0SRM寻源(sources of supply)debug断点设置小技巧
  • 原文地址:https://www.cnblogs.com/green-frog-2019/p/11355210.html
Copyright © 2020-2023  润新知