中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

golang中strings包Replace的函數聲明示例

發布時間:2021-03-22 12:43:44 來源:億速云 閱讀:274 作者:小新 欄目:開發技術

這篇文章將為大家詳細講解有關golang中strings包Replace的函數聲明示例,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

函數聲明為:

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 ))
}

補充: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

將一系列字符串連接為一個字符串,之間用sep來分隔。

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

Index

查找子串的位置

func Index(s, sep string) int

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

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

Repeat

func Repeat(s string, count int) string

返回count個s串聯的字符串。

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

Split

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

func Split(s, sep string) []string

用去掉s中出現的sep的方式進行分割,會分割到結尾,并返回生成的所有片段組成的切片(每一個sep都會進行一次切割,

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

fmt.Printf("%q\n", strings.Split("a,b,c", ",")) //%q 輸出格式為:帶引號的字符串
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
// 會去掉字符串兩端所有的"!"和" "

Fields

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

func Fields(s string) []string

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

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

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

關于“golang中strings包Replace的函數聲明示例”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大理市| 田阳县| 香格里拉县| 长葛市| 聂荣县| 英德市| 全州县| 沽源县| 博湖县| 资兴市| 乌兰察布市| 深州市| 盐亭县| 清徐县| 兴国县| 广宗县| 宁强县| 游戏| 海安县| 天水市| 南岸区| 高碑店市| 莆田市| 临澧县| 阳新县| 璧山县| 义马市| 民权县| 宝应县| 枞阳县| 尚志市| 黄骅市| 道真| 贡觉县| 巩留县| 金昌市| 习水县| 蕲春县| 通河县| 临夏市| 桃江县|