字符串操作

字符串切割

  • 按照空字符串切割

将字符串按照空字符换来切割,返回为字符串的切片。如果字符串是空字符串或者空白,将会返回空切片

func Fields(s string) []string
  • 按照指定字符去切割字符串

需要使用f函数来确定分隔符,如果字符串是空字符换或者空白将会返回空切片
方式一:

func FieldsFunc(s string, f func(rune) bool) []string

官网示例代码:

需要满足切割的字符不能是字母或者数字

f := func(c rune) bool {
    return !unicode.IsLetter(c) && !unicode.IsNumber(c)
}
//IsLetter报告一个字符是否是字母,IsNumber报告一个字符是否是数字字符
fmt.Printf("Fields are: %q", strings.FieldsFunc("  foo1;bar2,baz3...", f))

方式二:

以seq指定的切割符进行切割s,返回字符串类型的切片。如果seq是空字符串,Split会将s切分成每一个unicode码值一个字符串

func Split(s, sep string) []string
  • 按照指定的切割符去切割指定的次数

    func SplitN(s, sep string, n int) []string

    参数n决定返回的切片的数目:

    n > 0 : 返回的切片最多n个子字符串;最后一个子字符串包含未进行切割的部分。
    n == 0: 返回nil
    n < 0 : 返回所有的子字符串组成的切片

  • 按照指定的切割符去切割,并返回元素+分隔符

用指定的seq切割符去切割s,返回每个字符串同时并携带seq指定的切割符,最后生成字符串类型的切片

func SplitAfter(s, sep string) []string

字符串拼接

  • Sprintf()格式化输出

fmt包中,将字符串格式化后输出

Sprintf根据format参数生成格式化的字符串并返回该字符串

func Sprintf(format string, a ...interface{}) string

示例:

s1 := fmt.Sprintf("%s:%s", "hello", "world")
fmt.Println(s1)
  • strings.Join()函数连接字符串

将一系列字符串连接为一个字符串,之间用sep来分隔

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

官方示例:

s := []string{"foo", "bar", "baz"}
fmt.Println(strings.Join(s, ", "))
  • bytes.Buffer()

Buffer是一个实现了读写方法的可变大小的字节缓冲。本类型的零值是一个空的可用于读写的缓冲

type Buffer struct {
    // 内含隐藏或非导出字段
}

//定义读写方法的字节缓冲赋值变量
var b bytes.Buffer 
//把字节写入缓冲中
b.WriteString("hello")
b.WriteString("world!")
//将缓冲以字符串的形式输出
fmt.Println(stringBuilder.String())
  • 使用符号"+"连接

使用符号+将两个字符串连接起来

str := "hello" + "world"
fmt.Println(str)
THE END
分享
二维码
< <上一篇
下一篇>>
文章目录
关闭
目 录