1.1.1. 常用的字符串系统函数。

系统函数就是go语言的内置函数。直接就用。不用导入包。文档:https://studygolang.com/pkgdoc 。内置函数在文档的builtin 包里。字符串转换的包在strconv

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

var name string = "hello,你好"
fmt.Println("name 的长度 = ",len(name)) //14

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

var name string = "你好"
r := []rune(name)
for i := 0; i < len(r); i++ {
    fmt.Printf("%c \n",r[i])
}

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

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

    if err != nil {
        fmt.Println("转换错误",err)
    }else {
        fmt.Println("转换结果=",n)// 123
    }

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

    str := strconv.Itoa(12345)
    // str的值=12345, str的类型=string
    fmt.Printf("str的值=%v, str的类型=%T",str,str)

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

    var bytes  = []byte("hello ,你好")
    //bytes的值=[104 101 108 108 111 32 44 228 189 160 229 165 189]
    fmt.Printf("bytes的值=%v",bytes)

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

    var bytes  = []byte("hello ,你好")
    //bytes的值=[104 101 108 108 111 32 44 228 189 160 229 165 189]
    fmt.Printf("bytes的值=%v \n",bytes)

    str := string([]byte{104,101,108,108,111,32,44,228,189,160,229,165,189})
    fmt.Printf(str) //hello ,你好

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

    str := strconv.FormatInt(1245,16)
    fmt.Printf(str) //4dd

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

    exists := strings.Contains("seafood", "foo")
    fmt.Println(exists) //true

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

    count := strings.Count("ceheese", "e")
    fmt.Println(count) //4

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

    fmt.Println("abc" == "Abc") //false
    fmt.Println(strings.EqualFold("abc", "Abc")) // true

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

    fmt.Println(strings.Index("NLT你_abc", "abc")) //7
    fmt.Println(strings.Index("NLT你_abc", "345")) // -1

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

    fmt.Println(strings.LastIndex("go你 golang", "go")) //6
    fmt.Println(strings.LastIndex("go golang", "你")) // -1

13、将指定的子串替换成另外一个子串: strings.Replace("go go hello", "go", "你好", n) 。n 可以指定你希望替换几个,如果 n=-1 表示全部替换。

    //你好 go hello
    fmt.Println(strings.Replace("go go hello", "go", "你好", 1))
    //你好 你好 hello
    fmt.Println(strings.Replace("go go hello", "go", "你好", -1))

14、分割字符串成字符串数组: strings.Split("hello,wrold,你好", ",")。

    strArr := strings.Split("hello,wrold,你好", ",")
    for i := 0; i < len(strArr); i++ {
        fmt.Println(strArr[i])//依次输出:hello wrold 你好
    }
    //[hello wrold 你好]
    fmt.Println(strArr)

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

    str := "hello,你好"
    fmt.Println(strings.ToLower(str))//hello,你好
    fmt.Println(strings.ToUpper(str))//HELLO,你好

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

    fmt.Println(strings.TrimSpace(" tn a lone gopher ntrn    "))

17、将字符串左右两边指定的字符去掉 : fmt.Println(strings.Trim("!你hello!我是", "你是!"))//将字符串两边的'你' '是' '!' 3个字符去掉

    //将字符串"! hello! "两边的空格和!去掉
    fmt.Println(strings.Trim("! hello! ", " !"))//hello
    //将字符串两边的'你' '是'  '!' 去掉
    fmt.Println(strings.Trim("!你hello!我是", "你是!"))//hello!我

18、 将字符串左边指定的字符去掉 : strings.TrimLeft("!你hello!我是", "你是!") //将左边 '你' '是' '!' 3个字符去掉

    //将字符串左边的'你' '是'  '!' 去掉
    fmt.Println(strings.TrimLeft("!你hello!我是", "你是!"))//hello!我是

19、 将字符串右边指定的字符去掉 : strings.TrimRight("!你hello!我是", "你是!") //将右边 '你' '是' '!' 3个字符去掉

    //将字符串右边的'你' '是'  '!' 去掉
    fmt.Println(strings.TrimRight("!你hello!我是", "你是!"))//!你hello!我

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

fmt.Println(strings.HasPrefix("ftp你://192.168.10.1", "ftp你"))//true

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

results matching ""

    No results matching ""