golang中常用字符串函数 21个(系统函数)

参考官方文档
https://studygolang.com/pkgdoc

1、按字节统计字符串长度

中文字符字节数为8

 len(str) 

内置函数builtin,不用另外引包

2、字符串遍历,同时处理有中文的问题

先将字符串转成切片再遍历输出

r := []rune(str)

使用举例

str := "hello北京"
r := []rune(str)
for i:=0;i<len(r);i++{
	fmt.Printf("字符=%c\n",r[i])
}
3、字符串转整数

若转换不成功会返回erro,即err有值

n,err := strconv.Atoi("123")

注意引包 strconv

n,err := strconv.Atoi("123")
if err != nil{
	fmt.Printf("转换错误")
}
else{
	fmt.Printf("转换成功")
}
4、整数转字符串

注意引包 strconv

str = strconv.Itoa(12345)
5、字符串转 []byte 切片

应用:将字符串写入二进制文件

var bytes = []byte("hello go")

此时若是输出,那么就是输出ASCII编码

6、[]byte 转成字符串
str= string([]byte{97,98,99})

此时是将97,98,99对应字符组成字符串赋值给str

7、把十进制转成 2,8,16进制的数

注意引包 strconv

str = strconv.FormatInt(123,2) //123:要转换的十进制数  2——>进制

返回对应的字符串

8、查找子串是否在对应的字符串中

注意引包 Containsstrings

b := strings.Contains("seafoo","foo")

返回布尔值,有为真,没有为假

9、统计一个字符串中有几个对应的子串

注意引包 Countstrings

n := strings.Count("cheeze","e")

有则返回个数,没有返回0
此时 n=3

10、不区分大小写字符串比较(==区分大小写)

注意引包strings

b := strings.EqualFold("abc","Abc") //返回true
b == "abc" == "Abc" //返回false

应用密码校验

11、返回子串在字符串中第一次出现的index值(下标)

注意引包strings
如果没有返回-1

loc = strings.Index("NLT_abc","abc") //4
12、返回子串在字符串中最后一次出现的index值(下标)

注意引包strings
如果没有返回-1

loc = strings.LastIndex("go golang","go") //3
13、将制定子串替换成另一个子串(获得新串)

n表示希望替换几个,n=-1表示全部替换

strings.Replace("go go hello","go","go语言"1) //主串 要替换的子串 替换目标 替换个数

也可以

str2 := "go go hello"
str := string.Repalce(str2,"go","北京"-1) //str2本身并没有发生变化
14、按照指定某个字符,为分隔标识,将一个字符串拆分成字符串数组
strArr := strings.Split("hello,world,ok",",") //strArr为数组
15、字符串字母大小写替换

(1)变成小写

str := strings.ToLower("Go") //换成小写

或者

str := "goLang Hello"
str := string.ToLower(str) //输出 golang hello

(2)变成大写

str := strings.ToUpper("Go") //换成大写

或者

str := "goLang Hello"
str := string.ToUpper(str) //输出 GOLANG HELLO
16、将字符串左右两边空格去掉
str := strings.Trim.Space(" tn a lone gopher ntm    ")
17、将字符串左右两边指定字符去掉
str := strings.Trim("! hello! ","! ") //去掉左右两边的"! "
18、将字符串左边指定字符去掉
str := strings.TrimLeft("! hello! ","! ") //去掉左边的"! "
19、将字符串右边指定字符串去掉
str := strings.TrimRight("! hello! ","! ") //去掉右边的"! "
20、判断字符串是否以指定的字符开头(前缀)
b := strings.HasPrefix("ftp://192.168.10.1","ftp") // true
21、判断字符串是否以指定的字符结尾(后缀)
b := strings.HasSuffix("ftp://192.168.10.1","abc")  //  false
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杰西啊杰西

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值