Golang strings包常用字符串操作函数详解
在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语言字符串处理的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













