Golang strings包常用字符串操作函数详解

键盘旁的猫
键盘旁的猫
发布时间:2026-10-13 | 7人浏览过
原创

在Golang编程中,处理文本数据离不开对字符串的高效操作。strings包提供了丰富的内置函数来简化这些任务,如判断子串存在性、截取、替换和格式化等。通过掌握这些API,开发者可以更简洁地编写出健壮的文本处理逻辑。

func Contains

作用: 判断substr是否是s的子串。

package main

import (
	"fmt"
	"strings"
)

func main() {
	// 判断 "in" 是否在 "Linux" 中
	fmt.Println(strings.Contains("Linux", "in")) // true
	fmt.Println(strings.Contains("Linux", "Unix")) // false
	// 空字符串总是任何字符串的子串
	fmt.Println(strings.Contains("Linux", "")) // true
}

func HasPrefix

作用: 判断字符串s是否以prefix开头。

package main

import (
	"fmt"
	"strings"
)

func main() {
	fmt.Println(strings.HasPrefix("Linux", "Lin")) // true
	fmt.Println(strings.HasPrefix("Linux", "ux")) // false
	fmt.Println(strings.HasPrefix("Linux", "")) // true
}

func HasSuffix

作用: 判断字符串s是否以suffix结尾。

package main

import (
	"fmt"
	"strings"
)

func main() {
	fmt.Println(strings.HasSuffix("Linux", "nux")) // true
	fmt.Println(strings.HasSuffix("Linux", "ix")) // false
	fmt.Println(strings.HasSuffix("Linux", "")) // true
}

func Replace

作用: 返回将s中前n个不重复的old子串替换为new子串的新字符串。如果n < 0,则替换所有old子串。

package main

import (
	"fmt"
	"strings"
)

func main() {
	text := "Linux is very very very good!"
	// 只替换前2个 "very"
	fmt.Println(strings.Replace(text, "very", "much", 2)) // Linux is much much very good!
	// 替换所有的 "very"
	fmt.Println(strings.Replace(text, "very", "much", -1)) // Linux is much much much good!
}

func Split

作用: 返回将字符串s按sep子串分割的字符串切片。如果sep为空字符串,则将s分割为每一个unicode码值的字符串切片(即拆分为单个字符)。

package main

import (
	"fmt"
	"strings"
)

func main() {
	str := "Linux, Unix, Windows, Android"
	result := strings.Split(str, ", ")
	fmt.Println(result) // [Linux Unix Windows Android]
}

// 拆分单个字符示例
chars := strings.Split("Hello", "")
fmt.Println(chars) // [H e l l o]

func ToLower

作用: 返回字符串s中字母全部转小写的拷贝。

package main

import (
	"fmt"
	"strings"
)

func main() {
	fmt.Println(strings.ToLower("Linux, Unix, Windows, Android"))
	// linux, unix, windows, android
}

func ToUpper

作用: 返回字符串s中字母全部转大写的拷贝。

package main

import (
	"fmt"
	"strings"
)

func main() {
	fmt.Println(strings.ToUpper("Linux, Unix, Windows, Android"))
	// LINUX, UNIX, WINDOWS, ANDROID
}

func Repeat

作用: 返回由count个字符串s连接而成的新字符串。若count为负数或结果长度溢出,则会引发panic异常。

package main

import (
	"fmt"
	"strings"
)

func main() {
	fmt.Println(strings.Repeat("Linux", 6)) // LinuxLinuxLinuxLinuxLinuxLinux
	fmt.Println(strings.Repeat("Linux", 0)) // (输出空字符串)
	// 下面这行会触发 panic
	// fmt.Println(strings.Repeat("Linux", -1))
}

func Count

作用: 返回字符串s中包含的非重叠子串substr的个数。特殊情况下,如果substr是空字符串,则返回 1 + s中Unicode代码点的数量。

package main

import (
	"fmt"
	"strings"
)

func main() {
	fmt.Println(strings.Count("Golang Golang Golang", "Go")) // 3
	fmt.Println(strings.Count("Golang", "")) // 7 (包含边界)
	fmt.Println(strings.Count("Golang中文", "")) // 9
}

func Index

作用: 返回字符串s中包含的第一个子串substr的索引值;如果不存在则返回 -1。

package main

import (
	"fmt"
	"strings"
)

func main() {
	fmt.Println(strings.Index("Golang", "lang")) // 2 (golang从0开始索引)
	fmt.Println(strings.Index("Golang", "Windows")) // -1
}

func Join

作用: 使用sep作为分隔符,将elems中的所有元素连接成一个字符串。

package main

import (
	"fmt"
	"strings"
)

func main() {
	elems := []string{"I", "like", "golang", "!"}
	fmt.Println(strings.Join(elems, " ")) // I like golang !

	nums := []string{"123", "456", "789"}
	fmt.Println(strings.Join(nums, "-")) // 123-456-789
}

以上就是Golang strings包常用字符串操作函数的详细内容,更多关于Go语言字符串处理的资料请关注本站其它相关文章!

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表