Skip to content

string

Go 语言中的 strings 包提供了许多用于处理字符串的实用函数。你可以在 Go 项目中使用 strings 包来进行字符串的操作,比如查找、替换、分割、连接、大小写转换等。

以下是一些常见的 strings 包函数及其用法:

1. strings.Contains — 检查子字符串是否存在

go
package main

import (
    "fmt"
    "strings"
)

func main() {
    str := "Hello, Go!"
    fmt.Println(strings.Contains(str, "Go")) // true
    fmt.Println(strings.Contains(str, "World")) // false
}

2. strings.ContainsAny — 检查字符串是否包含指定的任何字符

go
package main

import (
    "fmt"
    "strings"
)

func main() {
    str := "Hello, Go!"
    fmt.Println(strings.ContainsAny(str, "aeiou")) // true, 包含元音字母
    fmt.Println(strings.ContainsAny(str, "123")) // false
}

3. strings.HasPrefix — 检查字符串是否以指定的前缀开始

go
package main

import (
    "fmt"
    "strings"
)

func main() {
    str := "Hello, Go!"
    fmt.Println(strings.HasPrefix(str, "Hello")) // true
    fmt.Println(strings.HasPrefix(str, "Go")) // false
}

4. strings.HasSuffix — 检查字符串是否以指定的后缀结束

go
package main

import (
    "fmt"
    "strings"
)

func main() {
    str := "Hello, Go!"
    fmt.Println(strings.HasSuffix(str, "Go!")) // true
    fmt.Println(strings.HasSuffix(str, "Hello")) // false
}

5. strings.Index — 查找子字符串第一次出现的位置

go
package main

import (
    "fmt"
    "strings"
)

func main() {
    str := "Hello, Go!"
    fmt.Println(strings.Index(str, "Go")) // 7,"Go" 在第 7 个位置
    fmt.Println(strings.Index(str, "World")) // -1,未找到
}

6. strings.Replace — 替换子字符串

go
package main

import (
    "fmt"
    "strings"
)

func main() {
    str := "Hello, Go!"
    newStr := strings.Replace(str, "Go", "Golang", 1) // 替换第一次出现的 "Go"
    fmt.Println(newStr) // "Hello, Golang!"
}

7. strings.Split — 根据分隔符分割字符串

go
package main

import (
    "fmt"
    "strings"
)

func main() {
    str := "a,b,c,d"
    parts := strings.Split(str, ",")
    fmt.Println(parts) // ["a" "b" "c" "d"]
}

8. strings.Join — 将字符串切片连接成一个字符串

go
package main

import (
    "fmt"
    "strings"
)

func main() {
    parts := []string{"a", "b", "c", "d"}
    str := strings.Join(parts, ",")
    fmt.Println(str) // "a,b,c,d"
}

9. strings.ToLower — 将字符串转换为小写

go
package main

import (
    "fmt"
    "strings"
)

func main() {
    str := "HELLO, GO!"
    fmt.Println(strings.ToLower(str)) // "hello, go!"
}

10. strings.ToUpper — 将字符串转换为大写

go
package main

import (
    "fmt"
    "strings"
)

func main() {
    str := "hello, go!"
    fmt.Println(strings.ToUpper(str)) // "HELLO, GO!"
}

11. strings.Trim — 去除字符串前后指定字符

go
package main

import (
    "fmt"
    "strings"
)

func main() {
    str := "   Hello, Go!   "
    fmt.Println(strings.Trim(str, " ")) // "Hello, Go!"
}

12. strings.TrimSpace — 去除字符串两端的空白字符

go
package main

import (
    "fmt"
    "strings"
)

func main() {
    str := "   Hello, Go!   "
    fmt.Println(strings.TrimSpace(str)) // "Hello, Go!"
}

13. strings.ToTitle — 将字符串中的每个单词的首字母转为大写

go
package main

import (
    "fmt"
    "strings"
)

func main() {
    str := "hello, go!"
    fmt.Println(strings.ToTitle(str)) // "Hello, Go!"
}

14. strings.Repeat — 重复字符串指定次数

go
package main

import (
    "fmt"
    "strings"
)

func main() {
    str := "Go! "
    fmt.Println(strings.Repeat(str, 3)) // "Go! Go! Go! "
}

15. strings.Fields — 将字符串分割成单词

go
package main

import (
    "fmt"
    "strings"
)

func main() {
    str := "Hello,   Go!"
    words := strings.Fields(str)
    fmt.Println(words) // ["Hello," "Go!"]
}

16. strings.Map — 对字符串的每个字符应用指定的映射函数

go
package main

import (
    "fmt"
    "strings"
)

func main() {
    str := "hello"
    result := strings.Map(func(r rune) rune {
        if r == 'l' {
            return 'x' // 替换 'l' 为 'x'
        }
        return r
    }, str)
    fmt.Println(result) // "hexxo"
}

17. strings.Compare — 比较两个字符串的大小

go
package main

import (
    "fmt"
    "strings"
)

func main() {
    fmt.Println(strings.Compare("a", "b")) // -1, "a" 小于 "b"
    fmt.Println(strings.Compare("b", "a")) // 1, "b" 大于 "a"
    fmt.Println(strings.Compare("a", "a")) // 0, 相等
}

18. strings.Count — 统计子字符串出现的次数

go
package main

import (
    "fmt"
    "strings"
)

func main() {
    str := "Go Go Go!"
    fmt.Println(strings.Count(str, "Go")) // 3
}

这些是 Go strings 包中常见的函数,它们涵盖了许多常见的字符串操作任务。如果你在项目中需要处理字符串,可以参考这些方法进行操作。