字符串

PPG007 ... 2021-12-26 Less than 1 minute

# 字符串

字符串常用操作:

  • len(str):求长度。

    fmt.Println("字符串的长度:", len(str))
    
    1
  • +fmt.Sprintf:拼接字符串。

    fmt.Println(fmt.Sprintf("%s%s", str, str))
    
    1
  • strings.Split:分割。

    fmt.Println(strings.Split(str, ","))
    
    1
  • strings.Contains:判断是否包含。

    fmt.Println(strings.Contains(str, "芜湖"))
    
    1
  • strings.HasPrefix,strings.HasSuffix:前缀后缀判断。

    fmt.Println(strings.HasPrefix(str, "这"), strings.HasSuffix(str, ","))
    
    1
  • strings.Index(),strings.LastIndex:子串出现的位置。

    fmt.Println(strings.Index(str, ","))
    
    1
  • strings.Join:符号连接。

    fmt.Println(strings.Join(strings.Split(str, ","), "-"))
    
    1

Go 语言中字符有两种:uint8 类型,代表 ASCII 的一个字符,rune 类型,代表一个 UTF-8 字符。

字符串底层是一个 byte 数组,字符串的长度就是 byte 字节的长度。

遍历字符串:

for _, c := range str {
  fmt.Printf("%c\n", c)
}
1
2
3

如果字符串只有 ASCII 字符:

for i := 0; i < len(str); i++ {
  fmt.Printf("%c\n", str[i])
}
1
2
3

修改字符串:要修改字符串需要先转为 rune 或 byte 数组,修改完成后再转换为 string,无论哪种转换都会重新分配内存并复制字节数组。

str := string("这,是,一,段,字,符,串,")
runeArray := []rune(str)
runeArray[6] = '个'
fmt.Println(string(runeArray))
1
2
3
4
Last update: December 26, 2021 03:54
Contributors: PPG007