校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁(yè) > 知識(shí)庫(kù) > golang 中strings包的Replace的使用說(shuō)明

golang 中strings包的Replace的使用說(shuō)明

熱門標(biāo)簽:仙桃400電話辦理 重慶慶云企業(yè)400電話到哪申請(qǐng) 地圖標(biāo)注免費(fèi)定制店 鄭州智能語(yǔ)音電銷機(jī)器人價(jià)格 不封卡外呼系統(tǒng) 宿遷便宜外呼系統(tǒng)代理商 上海極信防封電銷卡價(jià)格 寧波語(yǔ)音外呼系統(tǒng)公司 湛江crm外呼系統(tǒng)排名

函數(shù)聲明為:

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

官方描述為:

返回將s中前n個(gè)不重疊old子串都替換為new的新字符串,如果n0會(huì)替換所有old子串。

示例代碼為,每行的結(jié)果見每行上面的注釋部分:

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 替換第一個(gè)匹配的 old;n=1: 888lafaldsjglad123lkfasdf123djfal123lkdjga123lksjfla123l
 fmt.Println("n=1: ", strings.Replace(s, old, new, 1 ))

 // 用 new 替換前 5 個(gè)匹配的 old(實(shí)際多于 5 個(gè));n=5: 888lafaldsjglad888lkfasdf888djfal888lkdjga888lksjfla123l
 fmt.Println("n=5: ", strings.Replace(s, old, new, 5 )) 
 
 // 用 new 替換前 7 個(gè)匹配上的 old(實(shí)際沒(méi)那么多);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 替換第一個(gè)匹配的 old;n=1: 666888888888888888
 fmt.Println("n=1: ", strings.Replace(s, old, new, 1 )) 

  // 用 new 替換前 5 個(gè)匹配的 old(實(shí)際多于 5 個(gè));n=5: 666666666666666888
 fmt.Println("n=5: ", strings.Replace(s, old, new, 5 ))

  // 用 new 替換前 7 個(gè)匹配上的 old(實(shí)際沒(méi)那么多);n=7: 666666666666666666
 fmt.Println("n=7: ", strings.Replace(s, old, new, 7 ))
}

補(bǔ)充:golang_字符串操作: strings包中Contains,Join,Index,Repeat,Split,Trim,Fields的用法介紹

字符串處理

Contains

func Contains(s, substr string) bool

判斷字符串s是否包含子串substr。

fmt.Println(strings.Contains("seafood", "foo")) //true

Join

func Join(a []string, sep string) string

將一系列字符串連接為一個(gè)字符串,之間用sep來(lái)分隔。

s := []string{"foo", "bar", "baz"}
fmt.Println(strings.Join(s, ", ")) //foo, bar, baz

Index

查找子串的位置

func Index(s, sep string) int

子串sep在字符串s中第一次出現(xiàn)的位置,不存在則返回-1。

fmt.Println(strings.Index("chicken", "ken")) //4
fmt.Println(strings.Index("chicken", "dmr")) //不包含子串返回-1 

Repeat

func Repeat(s string, count int) string

返回count個(gè)s串聯(lián)的字符串。

fmt.Println("ba" + strings.Repeat("na", 2)) //banana

Split

以指定的分隔符拆分,返回一組切片

func Split(s, sep string) []string 

用去掉s中出現(xiàn)的sep的方式進(jìn)行分割,會(huì)分割到結(jié)尾,并返回生成的所有片段組成的切片(每一個(gè)sep都會(huì)進(jìn)行一次切割,

即使兩個(gè)sep相鄰,也會(huì)進(jìn)行兩次切割)。如果sep為空字符,Split會(huì)將s切分成每一個(gè)unicode碼值一個(gè)字符串。

fmt.Printf("%q\n", strings.Split("a,b,c", ",")) //%q 輸出格式為:帶引號(hào)的字符串
fmt.Printf("%q\n", strings.Split("a man a plan a canal panama", "a "))
fmt.Printf("%q\n", strings.Split(" xyz ", ""))
fmt.Printf("%q\n", strings.Split("", "Bernardo O'Higgins"))

Output:

["a" "b" "c"]
["" "man " "plan " "canal panama"]
[" " "x" "y" "z" " "]
[""] //若分隔符在原字符串中不存在,返回原字符串切片

Trim

去掉兩端的字符

func Trim(s string, cutset string) string

返回將s前后端==所有==cutset包含的utf-8碼值都去掉的字符串。

fmt.Println(strings.Trim(" !!! Achtung! Achtung! !!! ", "! ")) 
// Achtung! Achtung
// 會(huì)去掉字符串兩端所有的"!"和" "

Fields

去掉空格,把元素放入切片中

func Fields(s string) []string

返回將字符串按照空白(unicode.IsSpace確定,可以是一到多個(gè)連續(xù)的空白字符)

分割的多個(gè)字符串。如果字符串全部是空白或者是空字符串的話,會(huì)返回空切片。

fmt.Printf("Fields are: %q", strings.Fields(" foo bar baz "))
// Fields are: ["foo" "bar" "baz"]

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • golang 中signal包的Notify用法說(shuō)明
  • golang strings包的Replace的使用說(shuō)明
  • Golang Printf,Sprintf,Fprintf 格式化詳解
  • 完美解決go Fscanf 在讀取文件時(shí)出現(xiàn)的問(wèn)題
  • Golang 并發(fā)以及通道的使用方式
  • golang 如何替換掉字符串里面的換行符\n
  • golang監(jiān)聽文件變化的實(shí)例

標(biāo)簽:物業(yè)服務(wù) 儋州 電子產(chǎn)品 海南 遼寧 青海 安康 西雙版納

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《golang 中strings包的Replace的使用說(shuō)明》,本文關(guān)鍵詞  golang,中,strings,包的,Replace,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《golang 中strings包的Replace的使用說(shuō)明》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于golang 中strings包的Replace的使用說(shuō)明的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 柳河县| 井陉县| 正安县| 抚松县| 垣曲县| 哈尔滨市| 民丰县| 东海县| 永仁县| 铜川市| 夏津县| 磐石市| 三明市| 称多县| 安化县| 玉环县| 福建省| 中方县| 黔西县| 清原| 漠河县| 洮南市| 金堂县| 确山县| 腾冲县| 南乐县| 阳东县| 美姑县| 陕西省| 施秉县| 莱州市| 德兴市| 长兴县| 嘉善县| 长宁县| 威海市| 朝阳市| 马尔康县| 安徽省| 德化县| 商河县|