golang 中 strings 包的 Replace 用法介绍笔记

本文深入解析了Go语言中字符串替换函数的使用方法,通过多个示例展示了如何利用该函数进行字符串替换,包括非重叠和重叠情况下的替换,以及不同参数设置的影响。

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

函数申明:

func Replace(s, old, new string, n int) string

官方描述为:

返回将s中前n个不重叠old子串都替换为new的新字符串,如果n<0会替换所有old子串。

示例代码为:

func main() {
    // non-overlapping: "123" repeat 6 times in s
    s := "123lafaldsjglad123lkfasdf123djfal123lkdjga123lksjfla123l"
    old := "123"
    new := "888"

fmt.Println("non-overlapping: ")
 // n < 0 ,用 new 替换所有匹配上的 old;n=-1:  888lafaldsjglad888lkfasdf888djfal888lkdjga888lksjfla888l
fmt.Println("n=-1: ", strings.Replace(s, old, new, -1 ))

// 不替换任何匹配的 old;n=0:  123lafaldsjglad123lkfasdf123djfal123lkdjga123lksjfla123l
fmt.Println("n=0: ", strings.Replace(s, old, new, 0 )) 

// 用 new 替换第一个匹配的 old;n=1:  888lafaldsjglad123lkfasdf123djfal123lkdjga123lksjfla123l
fmt.Println("n=1: ", strings.Replace(s, old, new, 1 ))

// 用 new 替换前 5 个匹配的 old(实际多于 5 个);n=5:  888lafaldsjglad888lkfasdf888djfal888lkdjga888lksjfla123l
fmt.Println("n=5: ", strings.Replace(s, old, new, 5 )) 

// 用 new 替换前 7 个匹配上的 old(实际没那么多);n=7:  888lafaldsjglad888lkfasdf888djfal888lkdjga888lksjfla888l
fmt.Println("n=7: ", strings.Replace(s, old, new, 7 )) 

// overlapping:
s = "888888888888888888"
old = "888"
new = "666"
fmt.Println("overlapping: ")

// n < 0 ,用 new 替换所有匹配上的 old;n=-1:  666666666666666666
fmt.Println("n=-1: ", strings.Replace(s, old, new, -1 )) 

// 不替换任何匹配的 old;n=0:  888888888888888888
fmt.Println("n=0: ", strings.Replace(s, old, new, 0 )) 

// 用 new 替换第一个匹配的 old;n=1:  666888888888888888
fmt.Println("n=1: ", strings.Replace(s, old, new, 1 )) 

 // 用 new 替换前 5 个匹配的 old(实际多于 5 个);n=5:  666666666666666888
fmt.Println("n=5: ", strings.Replace(s, old, new, 5 ))

 // 用 new 替换前 7 个匹配上的 old(实际没那么多);n=7:  666666666666666666
fmt.Println("n=7: ", strings.Replace(s, old, new, 7 ))
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值