当前位置: 首页 > article >正文

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


http://www.kler.cn/a/587619.html

相关文章:

  • GobiNet 驱动移植调试
  • 如何利用Python爬虫获取微店商品详情数据:实战指南
  • DeepSeek大模型在政务服务领域的应用
  • 使用 PaddlePaddle 官方提供的 Docker 镜像
  • 超声重建,3D重建 超声三维重建,三维可视化平台 UR 3D Reconstruction
  • PCDN 与边缘计算的结合​
  • PyTorch 深度学习实战(14):Deep Deterministic Policy Gradient (DDPG) 算法
  • Linux 命令学习记录
  • 数位小游戏
  • 聊聊 Redis 的一些有趣的特性(上)
  • ubuntu系统下添加pycharm到快捷启动栏方法
  • 【Qt】qApp简单介绍
  • ENSP实验案例-企业局域网搭建实施设计方案(计算机毕业设计作品)
  • html-to-image的使用及图片变形和无图问题修复
  • Hive SQL 精进系列:SUBSTR 函数的多样用法
  • 基于Python的天气预报数据可视化分析系统-Flask+html
  • 仿最美博客POETIZE(简易版)
  • 【go】Go 语言中 errors.Is 和 errors.As 的区别
  • LeetCode-跳跃游戏 II
  • std::invoke详解