字串常用的系統函式
阿新 • • 發佈:2021-08-30
字串
常用的系統函式
1、統計字串的長度,按位元組len(str)
// golang的編碼統一為utf-8(ASCII的字元(字母和數字)佔一個位元組,中文佔3個位元組)
var str = "xiao浩"
fmt.Println(len(str))
2、字串遍歷,同時處理有中文的問題
// 方式一
r := []rune(str)
for i := 0; i < len(r); i++ {
fmt.Printf("%c\n",r[i])
}
// 方式二
for _, val := range str {
fmt.Printf("%c\n", val)
}
3、字串轉整數
n, err := strconv.Atoi("123") if err != nil { fmt.Println("轉換失敗", err) } else { fmt.Println(n) }
4、整數轉字串
str = strconv.Itoa(123)
fmt.Println(str)
5、字串轉[]byte
var bytes = []byte("xiaohao")
fmt.Printf("%v\n", bytes) // [120 105 97 111 104 97 111]
6、[]byte轉字串
str = string([]byte{97, 98})
fmt.Printf("%v\n", str) // ab
7、10進位制轉2, 8, 16進位制
str = strconv.FormatInt(10, 2) // 2指2進位制 fmt.Printf("%v\n", str) // 1010
8、查詢子串是否在指定的字串中
b := strings.Contains("xiaohao", "hao")
fmt.Printf("%v\n", b) // true
9、統計一個字串有幾個指定的子串
count := strings.Count("xiaohao", "o")
fmt.Printf("%v\n", count) // 2
10、不區分大小寫的字串比較(==是區分字母大小寫的)
eq := strings.EqualFold("hao", "Hao")
fmt.Printf("%v\n", eq) // true
11、返回子串在字串第一次出現的index值,如果沒有返回-1
index := strings.Index("xiaohao", "hao") fmt.Printf("%d\n", index) // 4
12、返回子串在字串最後一次出現的index,如沒有返回-1
index = strings.LastIndex("xiaohao", "a")
fmt.Printf("%d\n", index) // 5
13、將指定的子串替換成另外一個子串
# 第一種方式Replace
str2 := "hello 小浩"
str2 = strings.Replace(str2, "小浩", "hao", 1) // 如果n=-1表示全部替換
fmt.Printf("%v\n", str2) // hello hao
# 第二種方式ReplaceAll 全部替換
str2 := "hello 小浩"
str2 = strings.ReplaceAll(str2, "ll", "oo")
fmt.Printf("%v\n", str2) // heooo 小浩
14、按照指定的某個字元,為分割標識,將一個字串拆分成字串陣列
strArr := strings.Split("hello,world", ",")
fmt.Printf("%v\n", strArr) // [hello world]
15、將字串的字母進行大小寫的轉換
str = "xiaohao"
str = strings.ToUpper(str) // 大寫
fmt.Printf("%v\n", str) // XIAOHAO
str = strings.ToLower(str) // 小寫
fmt.Printf("%v\n", str) // xiaohao
16、將字串左右兩邊的空格去掉
str = " xiao hao "
str = strings.TrimSpace(str)
fmt.Printf("%v\n", str) // xiao hao
17、將字串左右兩邊指定的字元去掉
str = " !xiao ! hao! "
str = strings.Trim(str, " !")
fmt.Printf("%v\n", str) // xiao ! hao
18、將字串左邊指定的字元去掉
str = "!xiao hao!"
str = strings.TrimLeft(str, "!")
fmt.Printf("%v\n", str) // xiao hao!
19、將字串右邊指定的字元去掉
str = "!xiao hao!"
str = strings.TrimRight(str, "!")
fmt.Printf("%v\n", str) // !xiao hao
20、判斷字串是否以指定的字串開頭
str = "xiaohao"
b = strings.HasPrefix(str, "xi")
fmt.Printf("%v\n", b) // true
21、判斷字串是否以指定的字串結尾
str = "xiaohao"
b = strings.HasSuffix(str, "xi")
fmt.Printf("%v\n", b) // false