go strings函数说明

本文详细介绍了Go语言中常用的字符串操作函数,包括比较、查找、计数、替换等功能,并通过实例展示了每个函数的具体用法。文章还对比了不同函数之间的细微差别,帮助读者更好地理解和运用Go语言的字符串处理能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

列举出用过的一些函数,加说明和例子,下面是源码加运行结果:

package main

import (
	"fmt"
	"strings"
	"unicode"
)

func main(){
	var str1, str2 string
	str1 = "123456"
	str2 = "abcdef"
	fmt.Println("-------------Compare----------------")
	//函数原型:func Compare(a, b string) int
	//功能:按字典顺序比较两个字符串的整数。如果a == b则结果为0,如果a <b则结果为-1,如果a> b则结果为+1。
	//说明:仅包含与包字节对称的比较。使用内置字符串比较运算符==,<,>等通常更清晰,速度更快。
	fmt.Println(strings.Compare(str1, "123456"))
	fmt.Println(str1 == "123456")
	fmt.Println(strings.Compare(str1, str2))

	fmt.Println("-------------Contains----------------")
	//函数原型:func Contains(s, substr string) bool
	//功能:substr是否在s中出现 
	//说明:这里的包含需要全部匹配,可以和下一个函数ContainsAny区别比较
	fmt.Println(strings.Contains("food is eeeee", "foo"))
	fmt.Println(strings.Contains("food food food is not found.", "bar"))
	fmt.Println(strings.Contains("food", ""))
	fmt.Println(strings.Contains("", ""))

	fmt.Println("-------------ContainsAny----------------")
	//函数原型:func ContainsAny(s, chars string) bool
	//功能:chars中任意一个unicode编码字符是否出现在s中
	//说明:和Contains区别,Contains需要Contains全部匹配
	fmt.Println(strings.ContainsAny("team", "i"))
	fmt.Println(strings.ContainsAny("failure", "u & i"))
	fmt.Println(strings.ContainsAny("failure", "u k"))
	fmt.Println(strings.ContainsAny("foo", ""))
	fmt.Println(strings.ContainsAny("", ""))

	fmt.Println("-------------Count----------------")
	//函数原型:func Count(s, substr string) int
	//功能:计算在s中substr出现的非重叠的个数
	//说明:注意非重叠,同时,如果是计算substr是"",那么返回的是1 + s的字符数量,可以用来计算字符串的长度
	fmt.Println(strings.Count("exit", "e"))
	fmt.Println(strings.Count("abababab", "aba"))
	fmt.Println(strings.Count("five", ""))

	fmt.Println("-------------EqualFold----------------")
	//函数原型:func EqualFold(s, t string) bool
	//功能:不区分大小写的情况下比较s和t是否相等,
	//说明:默认编码为utf-8
	fmt.Println(strings.EqualFold("golang", "Golang"))
	fmt.Println(strings.EqualFold("hello", "Hello"))


	fmt.Println("-------------Fields----------------")
	//函数原型:func Fields(s string) []string
	//功能:以空格为分隔符切分字符串
	//说明:
	fmt.Printf("Fields are: %q \n", strings.Fields(" a ab abc aaa"))
	
	fmt.Println("-------------Fields----------------")
	//函数原型:func FieldsFunc(s string, f func(rune) bool) []string
	//功能:FieldsFunc在每次运行满足f(c)的Unicode代码点c时拆分字符串s,并返回s的切片数组。
	f := func(c rune) bool {
		return !unicode.IsLetter(c) && !unicode.IsNumber(c)
	}
	fmt.Printf("Fields are: %q\n", strings.FieldsFunc(" abc1;aaa2,ccc3...eee1 ", f))

	fmt.Println("-------------Replace----------------")
	//函数原型:func Replace(s, old, new string, n int) string
	//功能:将s中出现的不重叠的old字符串替换成new,最多替换n次,n为-1,没有次数替换
	fmt.Println(strings.Replace("abc abc abc", "b", "de", 2))
	fmt.Println(strings.Replace("abc abc abc", "abc", "go", -1))
	fmt.Println(strings.Replace("abababab", "aba", "go", -1))
	fmt.Println(strings.Replace("abc abc abc", "", "1", -1))
	fmt.Println(strings.Replace("abc abc abc", "", "1", 2))
}

结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值