Go语言之函数使用(12)字符串中常用的系统函数

字符串在我们程序开发中,使用的是非常多的,常用的函数需要同学们掌握[带看手册或者官方编程指南]:

字符串中常用的系统函数如下:

1、统计字符串的长度,按字节 len(str)
这里写图片描述
2、字符串遍历,同时处理有中文的问题 r := []rune(str)

3、 字符串转整数:

 n, err := strconv.Atoi("12") 

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

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

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

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

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

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

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

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

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

13、 将指定的子串替换成 另外一个子串: strings.Replace(“go go hello”, “go”, “go语言”, n) n可以指定你希望替换几个,如果n=-1表示全部替换
这里写图片描述
14、按照指定的某个字符,为分割标识,将一个字符串拆分成字符串数组: strings.Split("hello,wrold,ok", ",")
这里写图片描述
15、将字符串的字母进行大小写的转换:

strings.ToLower("Go") // go
 strings.ToUpper("Go") // GO

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

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

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

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

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

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

代码说明:

package utils

import (
    "strings"
    "strconv"
    "fmt"
)

func StringsFunction()  {
    str :="sadjksad嫌这嫌那analsdjflnlsanfln"
    fmt.Println("源字符串=",str)
// 1.   统计字符串的长度,按字节 len(str)
    //len默认是按照字节的大小返回
    res := len(str)
    fmt.Println("len默认是按照字节的大小返回字符串的长度=",res)
    str2 :=[]rune(str)
    // 照字符的个数统计,需要先转成[]rune 
    res2 := len(str2)
    fmt.Println("[]rune按照字符的大小返回字符串的长度=",res2)
// 2.   字符串遍历,同时处理有中文的问题 r := []rune(str)
    for index,value  := range str {
        fmt.Printf("普通字符串遍历:str[%d]=%c \n",index,value )
    }
    for index,value  := range str2 {
        fmt.Printf("[]rune(str)字符串遍历:str[%d]=%c \n",index,value )
    }

// 3.   字符串转整数:  n, err := strconv.Atoi("12") 
    str3 :="123325436"
    res3, err := strconv.Atoi(str3)
        if err != nil {
            fmt.Println("字符串转整数,转换错误err=", err)
        } else {
            fmt.Printf("字符串转整数,num1 类型%T num1的值=%d \n", res3, res3)
        }
// 4.   整数转字符串  str = strconv.Itoa(12345)
    str4 :=123325436
    res4 := strconv.Itoa(str4)
    fmt.Printf("整数转字符串,res4 类型%T res4的值=%s \n", res4, res4)

// 5.   字符串 转 []byte:  var bytes = []byte("hello go")
       res5 := []byte("hello go")
       fmt.Printf("字符串 转 []byte,res5 类型%T res5的值=%s \n", res5, res5)
// 6.   []byte 转 字符串: str = string([]byte{97, 98, 99})
       res6 := string([]byte{97, 98, 99})
       fmt.Printf("[]byte 转 字符串,res6 类型%T res6的值=%s \n", res6, res6)
// 7.   10进制转 2, 8, 16进制:  str = strconv.FormatInt(123, 2) // 2-> 8 , 16

        res7 := strconv.FormatInt(123, 8) // 2-> 8 , 16
        res8 := strconv.FormatInt(123, 16) // 2-> 8 , 16
        res9 := strconv.FormatInt(123, 2) // 2-> 8 , 16
        fmt.Printf("10进制转 2进制值=%s \n", res9)
        fmt.Printf("10进制转 8进制值=%s \n", res7)
        fmt.Printf("10进制转 16进制值=%s \n", res8)
// 8.   查找子串是否在指定的字符串中: strings.Contains("seafood", "foo") //true
        res10 := strings.Contains("seafood", "foo") //true
        fmt.Printf("查找子串是否在指定的字符串中 =%t \n", res10)
// 9.   统计一个字符串有几个指定的子串 : strings.Count("ceheese", "e") //4
        res11 := strings.Count("ceeeeertyuxdeheese", "e") //4
        fmt.Printf("统计一个字符串有几个指定的子串 =%d \n", res11)
// 10.  不区分大小写的字符串比较(==是区分字母大小写的): fmt.Println(strings.EqualFold("abc", "Abc")) // true
        res12 := strings.EqualFold("abc", "Abc")
        fmt.Printf("不区分大小写的字符串比较 =%t \n", res12)
// 11.  返回子串在字符串第一次出现的index值,如果没有返回-1 : strings.Index("NLT_abc", "abc") // 4
        res13 := strings.Index("NtukhbLT_abc", "abc")
        res14 := strings.Index("NLT_abc", "d")
        fmt.Printf("返回子串在字符串第一次出现的index值 =%d \n", res13)
        fmt.Printf("返回子串在字符串第一次出现的index值 =%d \n", res14)
// 12.  返回子串在字符串最后一次出现的index,如没有返回-1 : strings.LastIndex("go golang", "go")
        res15 := strings.LastIndex("go golang", "go")
        res16 := strings.LastIndex("go golang", "b")
        fmt.Printf("返回子串在字符串最后一次出现的index =%d \n", res15)
        fmt.Printf("返回子串在字符串最后一次出现的index =%d \n", res16)
// 13.  将指定的子串替换成 另外一个子串: strings.Replace("go go hello", "go", "go语言", n) n可以指定你希望替换几个,如果n=-1表示全部替换
        res17 := strings.Replace("go go hello", "go", "go语言", 1)
        res18 := strings.Replace("go go hello", "go", "go语言", -1)
        fmt.Printf("将指定的子串替换成 另外一个子串 =%s \n", res17)
        fmt.Printf("将指定的子串替换成 另外一个子串 =%s \n", res18)
// 14.  按照指定的某个字符,为分割标识,将一个字符串拆分成字符串数组: strings.Split("hello,wrold,ok", ",") 
        res19 := strings.Split("hello,wrold,ok", ",")
        fmt.Printf("一个字符串拆分成字符串数组 =%v \n", res19)
// 15.  将字符串的字母进行大小写的转换: strings.ToLower("Go") // go strings.ToUpper("Go") // GO
        res20 := strings.ToLower("Go") // go 
        res27 := strings.ToUpper("Go") // GO
        fmt.Printf("将字符串的字母进行小写的转换 =%s \n", res20)
        fmt.Printf("将字符串的字母进行大写的转换 =%s \n", res27)
// 16.  将字符串左右两边的空格去掉: strings.TrimSpace(" tn a lone gopher ntrn   ")
        res21 := strings.TrimSpace("          tn a lone gopher ntrn   ")
        fmt.Printf("将字符串左右两边的空格去掉 =%s \n", res21)
// 17.  将字符串左右两边指定的字符去掉 : strings.Trim("! hello! ", " !")  // ["hello"] //将左右两边 ! 和 " "去掉
        res22 := strings.Trim("! hello! ", " !") 
        fmt.Printf("将字符串左右两边指定的字符去掉 =%s \n", res22)
// 18.  将字符串左边指定的字符去掉 : strings.TrimLeft("! hello! ", " !")  // ["hello"] //将左边 ! 和 " "去掉
        res23 := strings.TrimLeft("! hello! ", " !")
        fmt.Printf("将字符串左边指定的字符去掉 =%s \n", res23)
// 19.  将字符串右边指定的字符去掉 : strings.TrimRight("! hello! ", " !")  // ["hello"] //将右边 ! 和 " "去掉
        res24 := strings.TrimRight("! hello! ", " !")
        fmt.Printf("将字符串右边指定的字符去掉 =%s \n", res24)
// 20.  判断字符串是否以指定的字符串开头: strings.HasPrefix("ftp://192.168.10.1", "ftp") // true
        res25 := strings.HasPrefix("ftp://192.168.10.1", "ftp") // true
        fmt.Printf("判断字符串是否以指定的字符串开头 =%t \n", res25)
// 21.  判断字符串是否以指定的字符串结束: strings.HasSuffix("NLT_abc.jpg", "abc") //false
        res26 := strings.HasSuffix("NLT_abc.jpg", "abc") //false
        fmt.Printf(" 判断字符串是否以指定的字符串结束=%t \n", res26)
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值