1. 程式人生 > 其它 >字串常用的系統函式

字串常用的系統函式

字串

常用的系統函式

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