1.说明
字符串在开发中,使用频率非常高,所以我们需要掌握字符串的常用方法。
2.统计字符串的长度
按字节len(str)go的编码统一为utf-8(ascii的字符 字母和数字占一个字节,汉字占三个字节)
str := "hello"fmt.Println(len(str)) //5str = "hello杭"fmt.Println(len(str)) //8
3.字符串遍历
处理带有中文的字符串 r:=[]rune(str)
str := "hello杭州"r := []rune(str)for _, value := range r {fmt.Println(string(value))fmt.Printf("%c\n", value)}
结果:
h
h
e
e
l
l
l
l
o
o
杭
杭
州
州
4.整数转字符串
var a = 92str := strconv.Itoa(a)fmt.Printf("str:%v 类型:%T", str, str) //str:92 类型:string
5.字符串转整数
str := "123456"n, err := strconv.Atoi(str)if err != nil {fmt.Println(err)}else {fmt.Printf("n:%v type:%T", n, n) //n:123456 type:int}
6.[]byte与字符串的相互转换
str := "hello word"bytes := []byte(str)fmt.Println(bytes) //[104 101 108 108 111 32 119 111 114 100]str2 := string(bytes)fmt.Println(str2) //hello word
7.十进制转二进制、八进制和十六进制
str := strconv.FormatInt(15, 2)fmt.Printf("15对应的的二进制=%v\n", str) //15对应的的二进制=1111str = strconv.FormatInt(15, 8)fmt.Printf("15对应的的八进制=%v\n", str) //15对应的的八进制=17str = strconv.FormatInt(15, 16)fmt.Printf("15对应的的十六进制=%v\n", str) //15对应的的十六进制=f
8.查找子字符串是否在指定的字符串中
flag1 := strings.Contains("你好,世界", "你好")flag2 := strings.Contains("你好,世界", "你好吗")fmt.Println(flag1, flag2) //true false
9.统计一个字符串有几个指定的子字符串
num1 := strings.Count("hello word", "o")num2 := strings.Count("hello word", "or")fmt.Println(num1, num2) // 2 1
10.不区分大小写的字符串的比较
flag := strings.EqualFold("ABC", "abc")fmt.Println(flag) //truefmt.Println("ABC" == "abc") //false
11.返回子字符串在字符串第一次出现的位置index,如果没有返回-1
index := strings.Index("你好世界", "世界")fmt.Println(index) //6index = strings.Index("helloword", "word")fmt.Println(index) //5
12. 返回子字符串最后一次出现的index,如果没有返回-1
index := strings.LastIndex("helloaebcdef", "e")fmt.Println(index) //10
13.字符串的替换
注意:str = strings.Replace(str, "go", "golang", n),n可以指定你希望替换几个,如果n=-1表示全部替换。
str := "hello go go"str = strings.Replace(str, "go", "golang", -1)fmt.Println(str) //hello golang go
14.将字符串分隔成数组
str := "java,vue,holang,php"arr := strings.Split(str, ",")fmt.Println(arr)//[java vue holang php]
15.将字符串里面的字母进行大小写转换
str := "javavueholangphp"arr := strings.ToUpper(str)fmt.Println(arr) // JAVAVUEHOLANGPHPfmt.Println(strings.ToLower("ABC")) //abc
16.将字符串左右两边的空格去掉
str := " hello word "str = strings.TrimSpace(str)fmt.Println(str)//hello word
17.将字符串左右、左、右两边的指定字符去掉
str := "!!!hello!!!"fmt.Println(strings.Trim(str, "!")) //hellofmt.Println(strings.TrimLeft(str, "!")) //hello!!!fmt.Println(strings.TrimRight(str, "!")) //!!!hello
18.判断字符串一指定字符串开头或者结尾
str := "https://img-s-msn-com.akamaized.net/tenant/amp/entityid/AA1AKNhg.img"flag1 := strings.HasPrefix(str, "https")flag2 := strings.HasSuffix(str, ".png")fmt.Println(flag1, flag2)//true false