1. 程式人生 > >golang字符串常用函數

golang字符串常用函數

type ola 1個漢字 join help real 大小寫轉換 ims trim

package utils
import "fmt"
import "strconv"
import "strings"

var str string = "學golang使我快樂!"
// 關於string的常用函數

// 1. len(str) 內建函數,返回字符串長度,按字節,1個漢字3字節

// 2. range []rune(str)  字符串遍歷,處理中文問題 
func F2() {
    for _,value := range []rune(str) {
        fmt.Printf("%c \n",value)
    }
}

// 3. string轉整數 strconv.Atoi(str) 這個函數是 strconv.ParseInt(s string, base int, bitSize int) (i int64 err error)的簡化版
func F3() {
    num, _ := strconv.Atoi("666")
    fmt.Printf("num type is %T,value is %v", num, num) // num type is int,value is 666

}

// 4. 整數轉string strconv.Itoa(666) 是strconv.FormatInt(i int64, base int) string的簡化版

// 5. string to []byte  b := []byte(str)
func F5(){
     b := []byte(str)
     fmt.Printf("%T %v\n", b, b) // type of b is []uint8
}

// 6. []byte to string   s := string([]byte{77,88,99})
func F6(){
     s := string([]byte{77,88,99})
     fmt.Printf("%T %v\n", s, s) // string MXc
}

// 7. 十進制數轉2 8 16進制字符串  strconv.FormatInt(i int64, base int) string  base->2,8,16

// 8. 判斷字符串s是否包含子串substr strings.Contains(s, substr string) bool

// 9. 統計子串出現次數 strings.Count(s, sep string) int
func F9() {
    s := "A man who helps you when you are in trouble and who leaves you when you are successful is a real friend."

    fmt.Println(strings.Count(s,"you")) // 4

    s = "lv"
    fmt.Println(strings.Count(s,"")) // 3

}

// 10. 判斷連個字符串是否相等 str1 == str2 區分大小寫, 不區分大小寫方式strings.EqualFold(s, t string) bool

// 11. 子串sep在字符串s中第一次/最後一次出現的位置,不存在則返回-1  Index(s, sep string) int/LastIndex(s, sep string) int

// 12. 將n個old子串替換為new字符串,n<0會替換所有old子串 strings.Replace(s, old, new string, n int) string

// 13. 大小寫轉換 strings.ToUpper  /ToLower

// 14. 按sep拆分字符串,返回一個slice  strings.Split(s, sep string) []string

// 15. 將字符串slice以sep為分隔符組合成一個字符串 strings.Join(a []string, sep string) string

// 16. Trim系列 Trim(s string, cutset string) string 去除左右兩邊指定字符串  TrimRight/TrimLeft
//  TrimSpace(s string) string 去除左右兩邊空白
//  TrimPrefix(s, prefix string) string /TrimSuffix(s, suffix string) string 去除前/後綴

// 17. 判斷s是否有前綴/後綴字符串prefix   HasPrefix(s, prefix string) bool  / HasSuffix

golang字符串常用函數