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

目录

1. func Contains

2. func HasPrefix

3. func HasSuffix

4. func Replace

5. func Split

6. func ToLower

7. func ToUpper

8. func Repeat

9. func Count

10. func Index

11. func Join


在编写代码的时候最常用到的就是字符串了,Golang 中的字符串统一使用 UTF-8 (属于Unicode编码的一种实现方式)进行编码,本篇文章将结合具体实例对常用的字符串操作函数进行介绍。

1. func Contains

func Contains(s, substr string) bool

作用:判断 substr 是否是 s 的子串,例如:

package main

import (
	"fmt"
	"strings"
)

func main() {
	fmt.Println(strings.Contains("Linux", "in"))
	fmt.Println(strings.Contains("Linux", "Unix"))
	fmt.Println(strings.Contains("Linux", ""))
	fmt.Println(strings.Contains("", ""))
}

输出:

true
false
true
true

2. func HasPrefix

func HasPrefix(s, prefix string) bool

作用:字符串 s 是否以 prefix 为开头,例如:

package main

import (
	"fmt"
	"strings"
)

func main() {
	fmt.Println(strings.HasPrefix("Linux", "Lin"))
	fmt.Println(strings.HasPrefix("Linux", "in"))
	fmt.Println(strings.HasPrefix("Linux", ""))
}

输出:

true
false
true

3. func HasSuffix

func HasSuffix(s, suffix string) bool

作用:判断字符串 s 是否以 suffix 结尾,例如:

package main

import (
	"fmt"
	"strings"
)

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

输出:

true
false
true

4. func Replace

func Replace(s, old, new string, n int) string

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

package main

import (
	"fmt"
	"strings"
)

func main() {
	fmt.Println(strings.Replace("Linux is very very very good!", "very", "much", 2))
	fmt.Println(strings.Replace("Linux is very very very good!", "very", "much", -1))
}

输出:

Linux is much much very good!
Linux is much much much good!

5. func Split

func Split(s, sep string) []string

作用:返回将字符串 s 按 sep子串分割的字符串切片,sep 为空字符串时,将 s 分割为每一个 unicode 码值的字符串切片。例如:

package main

import (
	"fmt"
	"strings"
)

func main() {
	fmt.Println(strings.Split("Linux, Unix, Windows, Android", ", "))
	fmt.Println(strings.Split(" Linux is very very very good! ", " "))
}

输出:返回的是字符串数组。

[Linux Unix Windows Android]
[ Linux is very very very good! ]

6. func ToLower

func ToLower(s string) string

作用:返回字符串 s 中字母转小写的拷贝,例如:

package main

import (
	"fmt"
	"strings"
)

func main() {
	fmt.Println(strings.ToLower("Linux, Unix, Windows, Android"))
	fmt.Println(strings.ToLower(" Linux is very very very good! "))
}

输出:

linux, unix, windows, android
 linux is very very very good!

7. func ToUpper

func ToUpper(s string) string

作用:返回字符串 s 中字母转大写的拷贝,例如:

package main

import (
	"fmt"
	"strings"
)

func main() {
	fmt.Println(strings.ToUpper("Linux, Unix, Windows, Android"))
	fmt.Println(strings.ToUpper(" Linux is very very very good! "))
}

输出:

LINUX, UNIX, WINDOWS, ANDROID
 LINUX IS VERY VERY VERY GOOD! 

8. func Repeat

func Repeat(s string, count int) string

作用:返回 count 个字符串 s 相连接的字符串,如果 count 为负数 或(len * s * count)的结果溢出,则报 panic 异常。例如:

package main

import (
	"fmt"
	"strings"
)

func main() {
	fmt.Println(strings.Repeat("Linux", 6))
	fmt.Println(strings.Repeat("Linux", 0))
	fmt.Println(strings.Repeat("Linux", -1))
}

输出:

LinuxLinuxLinuxLinuxLinuxLinux

panic: strings: negative Repeat count

goroutine 1 [running]:
strings.Repeat(0x4bcf3d, 0x5, 0xffffffffffffffff, 0x1, 0x1)
        /usr/local/go/src/strings/strings.go:529 +0x5e5
main.main()
        /root/goProject/src/test/main.go:11 +0x167

9. func Count

func Count(s, substr string) int

作用:返回字符串 s 中包含的不重叠的子串 substr 个数,如果 substr 是一个空字符串,则返回1 + s中的Unicode代码点数(Unicode 代码点:可以简单理解为一个符号便是一个代码点),例如:

package main

import (
	"fmt"
	"strings"
)

func main() {
	fmt.Println(strings.Count("Golang Golang Golang", "Go"))
	fmt.Println(strings.Count("Golang", ""))
	fmt.Println(strings.Count("Golang语言", ""))
}

输出:

3
7
9

10. func Index

func Index(s, substr string) int

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

package main

import (
	"fmt"
	"strings"
)

func main() {
	fmt.Println(strings.Index("Golang", "lang"))
	fmt.Println(strings.Index("Golang", "Linux"))
}

输出:

2
-1

11. func Join

func Join(elems []string, sep string) string

 作用:使用 sep 作为分隔符,将elems 中的所有字符连接起来,例如:

package main

import (
	"fmt"
	"strings"
)

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

 输出:

[root@localhost gotest]# go run main.go 
I like golang !
123-456-789
[root@localhost gotest]#

参考链接:

[1] https://golang.org/pkg/strings/

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Linux猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值