美文网首页
Go字符串常用方法

Go字符串常用方法

作者: 领带衬有黄金 | 来源:发表于2019-12-25 21:41 被阅读0次

    更多方法,请见golang中文https://studygolang.com/pkgdoc

    // 1. =============统计字符串长度,按字节len(str)
        // ASCII码:一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间。
        // UTF-8编码:一个英文字符等于一个字节,一个中文(含繁体)等于三个字节。中文标点占三个字节,英文标点占一个字节
        // go中都以utf8进行编码
        str1 := "hello world 哈哈"
        fmt.Println("str len=", len(str1)) // 18
    
        // 2. =============字符串遍历,同时处理有中文的问题 r:=[]rune(str)
        // 常规遍历时,一个中文占三个字节,直接遍历时,会截断中文为三个字节,所以中文不能显示出来
        str2 := "hello北京"
        // 先转为rune的切片,将字符串转为ascii码,然后进行遍历
        r := []rune(str2)
        fmt.Println(r) // [104 101 108 108 111 21271 20140]
        for i := 0; i < len(r); i++ {
            fmt.Printf("字符=%c\n", r[i])
        }
    
        // 3. =============字符串转整数
        str3, err := strconv.Atoi("123")
        if err != nil {
            fmt.Println("转换错误", err)
        } else {
            fmt.Println(str3)
        }
    
        // 4. =============整数转字符串
        str4 := strconv.Itoa(123)
        fmt.Printf("%T,%v\n", str4, str4) //string,123
    
        // 5. =============字符串转字节 []byte
        var str5 = []byte("hello go")
        fmt.Println(str5)
    
        // 6. =============字节转字符串
        str6 := string([]byte{97, 98, 99})
        fmt.Println(str6)
    
        // 7. =============10进制转2,8,16进制,返回对应的字符串
        str7 := strconv.FormatInt(123, 8)
        fmt.Println(str7)
    
        // 8. =============查找子串是否存在指定的字符串中
        contains := strings.Contains("seafood", "foo")
        fmt.Println(contains)
    
        // 9. =============统计一个字符串有几个指定的字串
        count := strings.Count("cheese", "e")
        fmt.Println(count)
        
        // 10. ============不区分大小写的字符串比较(==区分字母大小写)
        fold := strings.EqualFold("abc", "AbC")
        fmt.Println(fold)
        
        // 11. ============返回字串在字符串中第一次出现的索引
        index := strings.Index("china", "a")
        fmt.Println(index)
        
        // 12. ============返回字串在字符串最后一次出现的index,没有则返回-1
        lastIndex := strings.LastIndex("go golang", "go")
        fmt.Println(lastIndex)
        
        // 13. ============将指定的子串替换成另外一个字串
        replace := strings.Replace("go go hello", "go", "golang", 1)
        fmt.Println(replace)
        
        // 14. ============按照指定的某个字符,为分割标识,将一个字符串拆分为字符串数组
        split := strings.Split("hello,world,golang", ",")
        fmt.Println(split)
        
        // 15. ============将字符串的字母大小写替换
        lower := strings.ToLower("Go GoLang")
        upper := strings.ToUpper("Go GoLang")
        fmt.Println(lower, upper)
        
        // 16. ============将字符串左右的空格去掉
        space := strings.TrimSpace(" tn go lang     ")
        fmt.Println(space)
        
        // 17. ============将字符串左右指定的字符去掉
        trim := strings.Trim("!hello!", "!")
        fmt.Println(trim)
        
        // 18. ============将字符串左边/右边指定的字符去掉
        left := strings.TrimLeft("!hello!", "!")
        right := strings.TrimRight("!hello!", "!")
        fmt.Println(left, right)
        
        // 19. ============判断字符串以什么开头/结尾
        prefix := strings.HasPrefix("abcde", "ab")
        suffix := strings.HasSuffix("abcde", "de")
        fmt.Println(prefix, suffix)
    

    相关文章

      网友评论

          本文标题:Go字符串常用方法

          本文链接:https://www.haomeiwen.com/subject/tyehoctx.html