golang字符串常用的系统函数

发布于:2025-03-15 ⋅ 阅读:(11) ⋅ 点赞:(0)

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


网站公告

今日签到

点亮在社区的每一天
去签到