Go_String常用操作

字符串操作:

len:统计字符串的长度

func main() {
	str := "English中文"
	fmt.Println("str的长度为:", len(str)) // 13,中文3个字节
}

查找子串是否在指定的字符串中:

func main() {
	fmt.Println(strings.Contains("itzhuzhu", "zhuzhu")) // true
	fmt.Println(strings.Contains("itzhuzhu", "Hello"))  // false
}

统计一个字符串有几个指定的子串 :

func main() {
	fmt.Println(strings.Count("aaabbbccc", "abcabc"))    // 0
	fmt.Println(strings.Count("aaabbbccc", "aaabbbccc")) //1
}

字符串比较(==是区分大小写,EqualFold是不区分大小写)

func main() {
	var x string = "ITzhuzhu"
	var y string = "itzhuzhu"
	fmt.Println(strings.EqualFold(x, y)) //true
	fmt.Println(x == y)                  //false
}

返回子串在字符串第一次出现的索引,如果没有则返回-1:

func main() {
	fmt.Println(strings.Index("ITzhuzhu", "I"))      // 0
	fmt.Println(strings.Index("ITzhuzhu", "IT"))     // 0
	fmt.Println(strings.Index("ITzhuzhu", "ITZ"))    // -1
	fmt.Println(strings.Index("ITzhuzhu", "zhuzhu")) // 2
}

返回子串在字符串最后一次出现的索引,如果没有返回-1:

func main() {
	fmt.Println(strings.LastIndex("ITzhuzhu", "IT"))  // 0
	fmt.Println(strings.LastIndex("ITzhuzhu", "zhu")) // 5
	fmt.Println(strings.LastIndex("ITzhuzhu", "u"))   // 7
}

将指定的子串替换成另外一个子串:

func main() {
	// 参数1:字符串,参数2:要替换的字符串,参数3,替换后的字符串,参数4,替换几个,-1是全部,1是第一个,2是第二个,以此类推
	fmt.Println(strings.Replace("itzhuzhu", "z", "Z", 1))  // itZhuzhu
	fmt.Println(strings.Replace("itzhuzhu", "z", "Z", -1)) // itZhuZhu
}

按照指定的分割标识,将字符串拆分为字符串数组

func main() {
	s := strings.Split("it,zhu,zhu", ",")
	fmt.Printf("%T,%v", s, s) // []string,[it zhu zhu]
}

将字符串的字母进行大小写的转换:

func main() {
	// ToLower:转为小写,ToUpper:转为大写
	fmt.Printf(strings.ToLower("ITZHUZHU\n")) // itzhuzhu
	fmt.Printf(strings.ToUpper("itzhuzhu"))   // ITZHUZHU
}

将字符串左右两边的空格去掉:

func main() {
	fmt.Printf(strings.TrimSpace(" IT ZHU ZHU ")) // IT ZHU ZHU 只能去掉两边的空格,中间的去不掉
}

将字符串左右两边指定的字符删除:

func main() {
	// 删除两边指定的字符     参数1:原字符串,参数2:要去掉的字符
	fmt.Println(strings.Trim("&%IT ZHU ZHU&%*(」", "&%*(」"))      //IT ZHU ZHU
  // 删除左边指定的字符
	fmt.Println(strings.TrimLeft("&%IT ZHU ZHU&%*(」", "&%"))     //IT ZHU ZHU&%*(」
  // 删除右边指定的字符
	fmt.Println(strings.TrimRight("&%IT ZHU ZHU&%*(」", "&%*(」")) //&%IT ZHU ZHU
}

判断字符串是否以指定的字符串开头:

func main() {
	// 判断是不是以www开头的,返回值是bool
	fmt.Println(strings.HasPrefix("www.itzhuzhu.com", "www.")) // true
	// 判断是不是com结尾
	fmt.Println(strings.HasSuffix("www.itzhuzhu.com", "www"))  // false
	fmt.Println(strings.HasSuffix("www.itzhuzhu.com", ".com")) // true
}

更多的还是去官方文档里去看:https://studygolang.com/pkgdoc
在这里插入图片描述

Contains:

判断字符串中是否包含指定字符串

func main() {
	str := "itzhuzhu"
	result := strings.Contains(str, "zhu")
	fmt.Println(result) // true
}

join:

字符串连接

func main() {
	str := []string{"a", "b", "c", "d", "e", "f"}
	join := strings.Join(str, "")
	fmt.Println("join:", join) // join: abcdef
}

Index:

查找指定字符串所在的位置,返回索引,找不到返回-1

func main() {
	str := "itzhuzhu"
	result := strings.Index(str, "zhu")
	fmt.Println("result:", result)  // result: 2
}

Repeat:

重复字符串次数,返回重复的字符串

func main() {
	str := "itzhuzhu"
	result := strings.Repeat(str, 3)
	fmt.Println("result:", result)   // result: itzhuzhuitzhuzhuitzhuzhu
}

Replace:

func Replace(s, old, new string, n int) string
在s字符串中,把old字符串替换为new string字符串,n表示替换的次数,小于0表示全部替换

func main() {
	str := "itzhuzhu"
	strings.Replace(str, "z", "Z", 1)// 替换第一个
	strings.Replace(str, "z", "Z", -1)// 全部替换
}

输出:

itZhuzhu
itZhuZhu

Split:

字符串分割,返回切片

func main() {
	str := "itzhuzhu@163.com"
	split := strings.Split(str, "@")
	fmt.Println("split:", split)  // split: [itzhuzhu 163.com]
}

Trim:

func Trim(s string, cutset string) string
在s字符串的头部和尾部去除cutset指定的字符串

func main() {
	str := "  itzhuzhu@163.com  "
	trim := strings.Trim(str, " ") // 去掉两头空格
	fmt.Println("trim:", trim)
}

Fields:

去除字符串的空格符,并且按照空格分割返回slice

func main() {
	str := "  itzhuzhu@163.com  "
	fields := strings.Fields(str)
	fmt.Println("fields:", fields)  // fields: [itzhuzhu@163.com]
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

itzhuzhu.

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

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

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

打赏作者

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

抵扣说明:

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

余额充值