TOC

Golang 字符串 string

package main

func main() {
    a := "hello 世界"
    fmt.Printf("%#v (%d)\n", a, len(a))
    // "hello 世界" (12)

    // 按 rune ForRange 循环
    for k, v := range a {
        fmt.Printf("%#4v. %#6v (%T)\n", k, v, v)
    }
    // 按 byte 索引取值
    fmt.Printf("a[0]: %#6v (%T)\n", a[0], a[0])
    fmt.Printf("a[6]: %#6v (%T)\n", a[6], a[6])
    //    0.    104 (int32)
    //    1.    101 (int32)
    //    2.    108 (int32)
    //    3.    108 (int32)
    //    4.    111 (int32)
    //    5.     32 (int32)
    //    6.  19990 (int32)
    //    9.  30028 (int32)
    // a[0]:   0x68 (uint8)
    // a[6]:   0xe4 (uint8)

    b := []byte(a)
    fmt.Printf("%#v\n", b)
    // []byte{0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0xe4, 0xb8, 0x96, 0xe7, 0x95, 0x8c}

    c := []rune(a)
    fmt.Printf("%#v\n", c)
    // []int32{104, 101, 108, 108, 111, 32, 19990, 30028}
}
  • len(s)
  • strings.Join(s1, s2) string 连接字符串
  • strings.ContainsRune(s, rune) bool
  • strings.Contains(s, substr) bool 子串包含判断
    注意:任何字符串都包含空字符串
  • strings.ContainsAny(s, chars string) bool 字符包含判断
  • strings.Index(s, substr) int 定位(Rabin-Karp 算法)
  • strings.Count(s, substr) int 字符计算(Rabin-Karp 算法)
    注意:任何字符串包含 n + 1 个空字符串
  • strings.HasPrefix(s, substr) bool startswith
  • strings.HasSuffix(s, substr) bool endswith
  • strings.Compare(s1, s2) 大于 1 / 小于 -1 / 等于 0
  • strings.Repeat(s, num) string 替换子串
  • strings.Replace(s, substr, replacement, num) string
  • strings.EqualFold(s1, s2) bool 忽略大小写等于判断
  • strings.Fields(s) 用空白字符(空格、换行、tab)将字符串切割成字串
  • strings.Split(s, sep string) []string 切割字符串
  • strings.SplitAfter(s, sep string) []string 切割字符串(包含分隔符)
  • strings.SplitAfterN(s, sep string, n int) []string
  • strings.SplitN(s, sep string, n int) []string

参考 Golang strings

字符串连接:

  • +, +=
  • fmt.Sprintf
  • strings.Join
  • bytes.Buffer
var b bytes.Buffer
b.WriteString("hello")
b.WriteString(" world")
fmt.Println(b.String())
  • strings.Builder
var sb strings.Builder
sb.WriteString("hello")
sb.WriteString(" world")
fmt.Println(sb.String())