参考文献

golang 几种字符串的连接方式

详细说明

strings.Split 支持单个分隔符

"20|15|12"

[20, 15, 12]

awardArr := strings.Split(gameConfig.AwardRule, "|")
for _, item := range awardArr {
    val, _ := strconv.Atoi(item)
    awardRule = append(awardRule, val)
}

"axin,blog,test"

["axin", "blog", "test"]

str := "axin,blog,test"
res := strings.Split(str, ",")
fmt.Println(res)

字符串连接

res := strings.Join(str, ",")

strings.FieldsFunc 支持多个分隔符

srcStr2 := "a b c,def,k,g"
	desStr2 := strings.FieldsFunc(srcStr2, splitFunc)
	fmt.Printf("ret:%s\n", desStr2)

strings.SplitN 指定分割符号,指定分割次数

countSplit = strings.SplitN(str, " ", 2)

字符串拼接

+ & +=操作符号

str := "hello" + "world"
fmt.Println(str) // helloworld

str1 := "hello"
str2 := "world"
str1 += str2
fmt.Println(str1) // helloworld

bytes.Buffer

bytes.BufferWriterString()连接字符串的字节,从而实现连接字符串的目的。这种方法避免产生不必要的字符串对象,即不需要像使用+那样生成新的字符串对象。

str := bytes.Buffer{}
str.WriteString("hello")
str.WriteString("world")
fmt.Println(str.String()) // helloworld

或使用字符串工具类strings

var str strings.Builder
str.WriteString("Hello ")
str.WriteString("世界")
fmt.Println(str.String())

Sprintf

str := fmt.Sprintf("%s:%d", "127.0.0.1", 8080)
fmt.Println(str)

strings.Join

str := strings.Join([]string{"hello", "world"}, "")
fmt.Println(str) // helloworld

判断首尾字符

  • 判断是否https://开头
if !strings.HasPrefix(url, "http://") {
	url = "http://" + url
}

// HasPrefix tests whether the string s begins with prefix.
func HasPrefix(s, prefix string) bool {
	return len(s) >= len(prefix) && s[0:len(prefix)] == prefix
}
  • 判断是否.img结尾
if !strings.HasSuffix(url, ".img") {
	url += ".img"
}

// HasSuffix tests whether the string s ends with suffix.
func HasSuffix(s, suffix string) bool {
	return len(s) >= len(suffix) && s[len(s)-len(suffix):] == suffix
}

string 大小写转换

1、func Title(s string) string
将字符串s每个单词首字母大写返回
2、func ToLower(s string) string
将字符串s转换成小写返回
3、func ToLowerSpecial(_case unicode.SpecialCase, s string) string
将字符串s中所有字符按_case指定的映射转换成小写返回
4、func ToTitle(s string) string
将字符串s转换成大写返回
5、func ToTitleSpecial(_case unicode.SpecialCase, s string) string
将字符串s中所有字符按_case指定的映射转换成大写返回
6、func ToUpper(s string) string
将字符串s转换成大写返回
7、func ToUpperSpecial(_case unicode.SpecialCase, s string) string