golang字符串常用的系统函数
1.说明
字符串在开发中,使用频率非常高,所以我们需要掌握字符串的常用方法。
2.统计字符串的长度
按字节len(str)go的编码统一为utf-8(ascii的字符 字母和数字占一个字节,汉字占三个字节)
str := "hello"
fmt.Println(len(str)) //5
str = "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 = 92
str := 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对应的的二进制=1111
str = strconv.FormatInt(15, 8)
fmt.Printf("15对应的的八进制=%v\n", str) //15对应的的八进制=17
str = 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) //true
fmt.Println("ABC" == "abc") //false
11.返回子字符串在字符串第一次出现的位置index,如果没有返回-1
index := strings.Index("你好世界", "世界")
fmt.Println(index) //6
index = 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) // JAVAVUEHOLANGPHP
fmt.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, "!")) //hello
fmt.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