- 统计字符串长度,按字节 len(str)
str := "你好"
fmt.Println("len=", len(str))
- 字符串遍历,同时处理有中文的问题 s := []rune(str)
str := "你好"
s := []rune(str)
for i := 0; i < len(s); i++ {
fmt.Printf("string=%c\n", s[i])
}
- 字符串转整数 num, err := strconv.Atoi(str)
str := "123"
num, err := strconv.Atoi(str)
if err != nil {
fmt.Println("转换成功,数字为:", num)
} else {
fmt.Println("转换失败,错误:", err)
}
- 整数转字符串 str := strconv.Itoa(num)
num := 123
str := strconv.Itoa(num)
fmt.Printf("str=%v, type=%T\n", str, str)
- 查找子串是否在指定的字符串中,区分大小写,支持汉字 strings.Contains(s, substr)
substr := "world"
s := "hello world!"
v := strings.Contains(s, substr)
fmt.Println("v=", v) // 返回:true
- 统计一个字符串中有几个指定的子串,区分大小写,支持汉字 strings.Count(s, substr)
substr := "世界"
s := "你好,世界!世界~"
count := strings.Count(s, substr)
fmt.Println("数量:", count) // 返回:2
- 字符串比较,==区分大小写;不区分strings.EqualFold(s, t)
s := "world"
t := "WorLd"
v := strings.EqualFold(s, t)
fmt.Println("v=", v) // 返回:true
- 返回子串在字符串第一次出现的位置,从0开始计数,区分大小写,若没有返回-1 strings.Index(s, substr)
s := "hello world!"
substr :="world"
index := strings.Index(s, substr)
fmt.Println("index=", index) // 返回:6
类似PHP的strpos函数
- 返回子串在字符串最后一次出现的位置,从0开始计数,区分大小写,若没有返回-1 strings.LastIndex(s, substr)
s := "hello world!world~"
substr := "world"
index := strings.LastIndex(s, substr)
fmt.Println("index=", index) // 返回:12
- 将指定的子串替换为另一个子串 strings.Replace(s, old, new, n)
s := "hello world!world~"
old := "world"
new := "世界"
str := strings.Replace(s, old, new, -1)
fmt.Println("str=", str) // 返回:hello 世界!世界~
- 按照指定字符将字符串拆分为字符串数组 strings.Split(s, sep)
s := "10,11,12"
sep := ","
strArr := strings.Split(s, sep)
for index, value := range strArr {
fmt.Printf("index=%v value=%v\n", index, value)
}
类似PHP的explode
- 将字符串字母进行大写转换 strings.ToUpper(s)
- 将字符串字母进行小写转换 strings.ToLower(s)
- 将字符串左右两边空格去掉 strings.TrimSpace(s)
s := " Hello, World! "
str := strings.TrimSpace(s)
fmt.Println("str=", str) // 返回:Hello, World!
- 将字符串左右两边指定的字符去掉 strings.Trim(s, cutset)
s := "a Hello, World!a "
cutset := "a "
str := strings.Trim(s, cutset)
fmt.Println("str=", str) // 返回:Hello, World!
- 将字符串左边指定的字符去掉 strings.TrimLeft(s, cutset)
- 将字符串右边指定的字符去掉 strings.TrimRight(s, cutset)
- 判断字符串是否以指定的字符串开头 strings.HasPrefix(s, prefix)
s := "https://www.xx.com"
prefix := "https"
v := strings.HasPrefix(s, prefix)
fmt.Println("v=", v) // 返回:true
- 判断字符串是否以指定的字符串结尾 strings.HasSuffix(s, suffix)
s := "21312123123123.jpg"
suffix := ".jpg"
v := strings.HasSuffix(s, suffix)
fmt.Println("v=", v) // 返回:true