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

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

在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 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。