处理字符串是常见操作,这里用到了两个包:strings和text的cases。
去掉字符串首尾空格
package main_test
import (
"fmt"
"strings"
"testing"
"golang.org/x/text/cases"
"golang.org/x/text/language"
)
// 去掉字符串首尾空格
func TestTrimSpace(t *testing.T) {
str := " abcdefg "
s := strings.TrimSpace(str)
fmt.Println("处理之后的字符串:", s)
// 处理之后的字符串: abcdefg
}
去掉字符串首尾的特殊字符
// 去掉字符串首尾的特殊字符
func TestTrim(t *testing.T) {
str := "###abcde#fg##"
s := strings.Trim(str, "#")
fmt.Println(s)
// abcde#fg
}
替换所有字符
// 替换所有字符
func TestReplaceAll(t *testing.T) {
str := "###abcde#fg##"
s := strings.ReplaceAll(str, "#", "$")
fmt.Println(s)
// $$$abcde$fg$$
}
所有字母转换为大写格式
// 所有字母转换为大写格式
func TestToUpper(t *testing.T) {
fmt.Println(strings.ToUpper("Hello"))
// HELLO
}
所有字母转换为小写格式
// 所有字母转换为小写格式
func TestToLower(t *testing.T) {
fmt.Println(strings.ToLower("Hello"))
// hello
}
所有字母转换为标题格式
// 所有字母转换为标题格式
func TestTitle(t *testing.T) {
str := "hello world"
// 转换器
c := cases.Title(language.English)
fmt.Println(c.String(str))
// Hello World
}
字符串比较
// 字符串比较
func TestCompare(t *testing.T) {
str1, str2 := "hello", "hello"
fmt.Println(strings.Compare(str1, str2))
// 0
}
第一个索引位置
// 第一个索引位置
func TestIndex(t *testing.T) {
fmt.Println(strings.Index("Hello", "ll"))
// 2
}
最后一个索引位置
// 最后一个索引位置
func TestLastIndex(t *testing.T) {
fmt.Println(strings.LastIndex("Hello", "l"))
// 3
}
字符串分割为字符串切片
// 字符串分割为字符串切片
func TestSplit(t *testing.T) {
fmt.Println(strings.Split("a b c", " "))
// [a b c]
}
空格分割字符串为字符串切片
// 空格分割字符串为字符串切片
func TestFields(t *testing.T) {
fmt.Println(strings.Fields("a b c"))
// [a b c]
}
拼接
// 拼接
func TestJoin(t *testing.T) {
fmt.Println(strings.Join([]string{
"a", "b", "c"}, ","))
// a,b,c
}
包含
// 包含
func TestContains(t *testing.T) {
fmt.Println(strings.Contains("abc", "a"))
// true
}
统计
// 统计
func TestCount(t *testing.T) {
fmt.Println(strings.Count("abaca", "a"))
// 3
}
参考
https://pkg.go.dev/golang.org/x/text/cases
https://pkg.go.dev/strings