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

【go语言】字符串函数

【go语言】字符串常用的系统函数函数

  • 1)统计字符串的长度,按字节(golang的编码统一为utf-8(ASCII的字符(字母和数字)占一个字节,汉字占3个字节)
    str := "hello北京”len(str)
  • 2)字符串遍历,同时处理有中文的问题
    str :=  "hello北京”//处理有中文的问题,用切片r := []rune(str2)for i := 0; i < len(r); i++ {fmt.Printf("字符=%c\n", r[i])}
  • 3)字符串转整数n,err := strconv.Atoi("12")
//字符串转整数:n, err := strconv.Atoi("12")
n, err := strconv.Atoi("hello")
if err != nil {fmt.Println("转换错误", err)
}else {fmt.Print1n("转成的结果是", n)
}
  • 4)整数转字符串str = strconv.Itoa(12345)
    str = strconv.Itoa(12345)fmt.Printf("str=%v, str=%T", str, str)//str=12345, str=string
  • 5)字符串转[]byte : var bytes = []byte("hello go")
    var bytes = []byte("hello go")fmt.Printf("bytes=%v\n", bytes)//bytes=[104 101 108 108 111 32 103 111]ASCII码值
  • 6)[]byte 转 字符串: str = string([]byte{97,98,99})
    str = atring({}byte{97,98,99})fmt.Printf("str=%v\n", str)
  • 7)10进制转2,8,16进制: str = strconv.FormatInt(123,2) //2->8 , 16
    str = strconv.FormatInt(123,2)fmt.Printf("123对应的二进制是=%v\n", str)//1111011str = strconv.FormatInt(123,2)fmt.Printf("123对应的十六进制是=%v\n", str)//7b
  • 8)查找子串是否在指定的字符串中: strings.Contains("seafood", "foo"") //true常用
    b := strings.Contains("seafood", "foo"")fmt.Printf("b=%v\n", b)//b= true
  • 9)统计一个字符串有几个指定的子串: strings.Count("ceheese", "e") //4
    num := strings.Count("ceheese", "e")fmt.Printf("num=%v\n", num)//num=4   se就是num=1
  • 10)不区分大小写的字符串比较(==是区分字母大小写的):fmt.Println(strings.EqualFold("abc" , "Abc"") //true
    b = fmt.Println(strings.EqualFold("abc" , "Abc")fmt.Printf("b=%v\n", b)//truefmt.Println("结果","abc"=="Abc")//false(区分字母大小)
  • 11)返回子串在字符串第一次出现的 index值,如果没有返回-1:strings.Index("NLT_abc" , "abc"") //4
    strings.Index("NLT_abc" , "abc")fmt.Printf("index=%v\n", index)//4  若为hello返回-1
  • 12)返回子串在字符串最后一次出现的index,如没有返回-1 :strings.LastIndex("go golang", "go")
    index = strings.LastIndex("go golang", "go")fmt.Printf("index=%v\n", index)//3
  • 13)将指定的子串替换成另外一个子串: strings.Replace("go go hello", "go", "go语言" ,n)n可以指定你希望替换几个,如果n=-1表示全部替换
    str2 = "go go hello"str = strings.Replace(str2, "go", "go语言" ,1)fmt.Printf("str=%v\n", str)//go语言 go hello//str2本身并没有变化
  • 14)按照指定的某个字符,为分割标识,将一个字符串拆分成字符串数组:strings.Split("hello,world,ok", ",")
    strArr := strings.Split("hello,world,ok", ",")for i := 0; i < len(strArr); i++ {fmt.Printf("str[%v]=%v", i, strArr[i])}//str[0]=hello str[1]=world  str[2]=okfmt.Printf("strArr=%v\n", strArr)//[hello world ok]
  • 15)将字符串的字母进行大小写的转换:strings.ToLower("Go") // go strings.ToUpper("Go")//GO
    str = "golang Hello"str = strings.ToLower(str) // go strings.ToUpper("Go")//GO//str本身改变了fmt.Printf("str=%v\n", str)//golang hello
  • 16)将字符串左右两边的空格去掉:strings.TrimSpace(" tn a lone gopher ntrn ")
    str = strings.TrimSpace(" tn a lone gopher ntrn    ")fmt.Printf("str=%v\n", str)//str=tn a lone gopher ntrnfmt.Printf("str=%q\n", str)//"str=tn a lone gopher ntrn"
  • 17)将字符串左右两边指定的字符去掉: strings.Trim("! hello! "," !")//["hello"]//将左右两边!和" "去掉
    strings.Trim("! he!llo! "," !")//["hello"]//将左右两边!和" "去掉fmt.Printf("str=%v\n", str)//str="he!llo"strings.Trim("! he!llo! "," ")//["hello"]//将左右两边" "去掉fmt.Printf("str=%v\n", str)//str="! he!llo!"
  • 18)将字符串左边指定的字符去掉: strings.TrimLeft("! hello! "" !")l/ ["hello"]//将左边!和" "去掉

  • 19))将字符串右边指定的字符去掉:strings.TrimRight(" hello! ","!")// ["hello"]//将右边!和“ "去掉

  • 20)判断字符串是否以指定的字符串开头:strings.HasPrefix("ftp://192.168.10.1","ftp")//true

    b = strings.HasPrefix("ftp://192.168.10.1","ftp")//truefmt.Printf("b=%v\n", b)
  • 21)判断字符串是否以指定的字符串串结尾:strings.HasSuffix("NLT_abc.jpg","abc")//false
http://www.dtcms.com/a/348045.html

相关文章:

  • imx6ull-驱动开发篇39——Linux INPUT 子系统实验
  • 05-ArkUI界面开发
  • Solidity学习笔记
  • ZKmall模块商城的推荐数据体系:从多维度采集到高效存储的实践
  • 用 Bright Data MCP Server 构建实时数据驱动的 AI 情报系统:从市场调研到技术追踪的自动化实战
  • 青少年软件编程(python五级)等级考试试卷-客观题(2024年6月)
  • 数据库原理及应用_数据库基础_第2章关系数据库标准语言SQL_数据的维护
  • Adobe CS6所有系列绿色免安装版,Photoshop 6 Adobe Illustrator CS6 等绿色版
  • Spring创建的方式
  • 使用 Frida 运行时检测 Android 应用的真实权限状态 (App Ops)
  • 第4章栈和队列:顺序队——基本结构
  • Java 基础学习总结(211)—— Apache Commons ValidationUtils:让参数校验从 “体力活“ 变 “优雅事“
  • Vue状态管理工具pinia的使用以及Vue组件通讯
  • 一个byte表示多个bool属性的功能
  • 高并发AI服务部署方案:vLLM、TGI、FastChat性能压测报告
  • CSS 进阶用法
  • Read View是实现MVCC的三大前提之一,那么它是在什么时候建立的
  • frida安装配置及其使用方法
  • 一个奇怪的问题-Python会替代Java吗?技术语言之争的真相-优雅草卓伊凡
  • Java 大视界 -- Java 大数据在智能交通智能公交系统中的乘客流量预测与车辆调度优化
  • 程序里的依赖和中间件的依赖冲突,怎么解决
  • Docling:一个基于AI驱动的免费文档解析工具
  • Python性能优化实战(二):让循环跑得比博尔特还快
  • [身份验证脚手架] 应用布局如何构建
  • 初学python的我开始Leetcode题-16
  • CTFshow系列——命令执行web49-52
  • assert使用方法
  • Redis 高可用开发指南
  • 力扣594:最和谐子序列
  • 客流特征识别误报率↓76%!陌讯多模态时序融合算法在智慧零售的实战解析