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

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

相关文章:

  • Linux练级宝典->任务管理和守护进程
  • 基于C语言的简单HTTP Web服务器实现
  • 施磊老师c++笔记(五)
  • 【NLP 33、实践 ⑦ 基于Triple Loss作表示型文本匹配】
  • 计算机网络基础:IIS服务器(FTP服务器)
  • [React Native]Stack、Tab和Drawer导航器详解
  • Node.js Web 模块详解
  • Dockerfile Add和Copy的区别。
  • Amazon RDS ProxySQL 探索(一)
  • C语言数据结构:数组
  • 【vue】路由出口监听组件钩子
  • 【Go学习】04-4-Gorm框架-增删改查事务钩子
  • 计算机网络——DHCP
  • 如何精准打点解决卡牌、SLG、开放大世界、放置类游戏卡顿难题
  • body-parser 与 express.json()、express.urlencoded() 会冲突
  • 大数据学习(65)- Hue详解
  • 【后端】【django drf】Django DRF API 编写规范(程序设计规则)
  • 地理信息系统(ArcGIS)在水文水资源及水环境中的应用:空间数据管理‌、空间分析功能‌、‌可视化表达‌
  • ICLR 2025|DAMO开发者矩阵合作专场
  • 用sphinx-doc整理文档#2
  • seo技术优化技巧/google移动服务应用优化
  • 做网站公司哪家正规/无锡网络推广外包
  • 怎么给网站做绿标/品牌推广的意义
  • 网站建设与管理 教学大纲/seo系统培训
  • 动态网站建设简介/网站搜索优化技巧
  • 直播开放平台/seo chinaz