您好,登錄后才能下訂單哦!
比較返回一個(gè)按字典順序比較兩個(gè)字符串的整數(shù)。如果a == b則結(jié)果為0,如果a <b則結(jié)果為-1,如果a> b則結(jié)果為+1。
此外:僅包含與包字節(jié)對稱的比較。使用內(nèi)置字符串比較運(yùn)算符==,<,>等通常更清晰,速度更快。
fmt.Println(strings.Compare(“a”,“b”))
fmt.Println(strings.Compare(“a”,“a”))
fmt.Println(strings.Compare(“b”,“a”) )
輸出:
-1
0
1
注意:使用大于等于小于同樣可以得到同樣的答案。
判斷字符串substr是否在字符串s中,返回類型為布爾值。
fmt.Println(strings.ContainsAny(“team”,“i”))
fmt.Println(strings.ContainsAny(“failure”,“u&i”))
fmt.Println(strings.ContainsAny(“foo”,“” ))
fmt.Println(strings.ContainsAny(“”,“”))
輸出:
false
true
false
false
將s轉(zhuǎn)化為unicode編碼,然后判斷r是否在其中,返回值類型為bool值
//查找字符串是否包含特定的Unicode代碼點(diǎn)。
//例如,小寫字母“a”的代碼點(diǎn)是97.
fmt.Println(strings.ContainsRune(“aardvark”,97))
fmt.Println(strings.ContainsRune(“timeout”,97))
輸出:
真
假
統(tǒng)計(jì)字符串s中substr字符串的個(gè)數(shù),返回值類型為×××。
如果substr是空字符串,則Count返回1 + s包含的個(gè)數(shù)
fmt.Println(strings.Count(“cheese”,“e”))
fmt.Println(strings.Count(“five”,“”))//在每個(gè)符文之前和之后
輸出:
3
5
不考慮大小寫,判斷字符串s、t是否相同,返回值類型為布爾值
fmt.Println(strings.EqualFold(“Go”,“go”))
輸出:
true
按照空格進(jìn)行切分,將字符串s切割成一個(gè)切片。返回值類型為切片類型
fmt.Printf(“Fields are:%q”,strings.Fields(“foo bar baz”))
輸出:
字段是:[“foo”“bar”“baz”]
FieldsFunc在每次運(yùn)行滿足f(c)的Unicode代碼點(diǎn)c時(shí)拆分字符串s,并返回s的切片數(shù)組。如果s中的所有代碼點(diǎn)滿足f(c)或字符串為空,則返回空切片。FieldsFunc不保證它調(diào)用f(c)的順序。如果f沒有返回給定c的一致結(jié)果,則FieldsFunc可能會(huì)崩潰。
f:= func(c rune)bool {
return!unicode.IsLetter(c)&&!unicode.IsNumber(c)
}
fmt.Printf(“Fields is:%q”,strings.FieldsFunc(“foo1; bar2,baz3。 ..“, F))
輸出:
字段是:[“foo1”“bar2”“baz3”]
判斷s字符串是否是以prefix字符串開頭的,返回值類型為布爾值
注意:若prefix為空字符串,則為恒真
fmt.Println(strings.HasPrefix("Gopher", "Go"))
fmt.Println(strings.HasPrefix("Gopher", "C"))
fmt.Println(strings.HasPrefix("Gopher", ""))
Output:
true
false
true
判斷s字符串是否是以prefix字符串結(jié)束的,返回值類型為布爾值
注意:若prefix為空字符串,則為恒真
fmt.Println(strings.HasSuffix("Amigo", "go"))
fmt.Println(strings.HasSuffix("Amigo", "O"))
fmt.Println(strings.HasSuffix("Amigo", "Ami"))
fmt.Println(strings.HasSuffix("Amigo", ""))
Output:
true
false
false
true
返回第一個(gè)s中包含substr 的字符的索引,若無則返回-1
fmt.Println(strings.Index("chicken", "ken"))
fmt.Println(strings.Index("chicken", "dmr"))
Output:
4
-1
先判斷s與chars中是否有相同的元素,若有則返回相同元素在s中的第一個(gè)索引,若無,則返回-1
mt.Println(strings.IndexAny(“chicken”,“aeiouy”))
fmt.Println(strings.IndexAny(“crwth”,“aeiouy”))
輸出:
2
-1
IndexByte返回s中第一個(gè)c實(shí)例的索引,如果s中不存在c,則返回-1。
fmt.Println(strings.IndexByte(“golang”,“g”))
fmt.Println(strings.IndexByte(“gophers”,“h”))
fmt.Println(strings.IndexByte(“golang”,“x”) )
輸出:
0
3
-1
IndexFunc將索引返回到滿足f(c)的第一個(gè)Unicode代碼點(diǎn)的s,如果沒有,則返回-1。
f:= func(c rune)bool {
return unicode.Is(unicode.Han,c)
}
fmt.Println(strings.IndexFunc(“Hello,世界”,f))
fmt.Println(strings.IndexFunc(“你好,世界“,f))
輸出:
7
-1
IndexRune返回Unicode代碼點(diǎn)r的第一個(gè)實(shí)例的索引,如果s中不存在符文,則返回-1。如果r是utf8.RuneError,則返回任何無效的UTF-8字節(jié)序列的第一個(gè)實(shí)例。
fmt.Println(strings.IndexRune(“chicken”,“k”))
fmt.Println(strings.IndexRune(“chicken”,“d”))
輸出:
4
-1
將切片按照sep進(jìn)行連接,形成一個(gè)字符串
s := []string{"foo", "bar", "baz"}
fmt.Println(strings.Join(s, ", "))
Output:
foo, bar, baz
返回字符串s包含substr最后的一個(gè)索引值,沒有找到就返回-1
fmt.Println(strings.Index("go gopher", "go"))
fmt.Println(strings.LastIndex("go gopher", "go"))
fmt.Println(strings.LastIndex("go gopher", "rodent"))
Output:
0
3
-1
LastIndexAny從s中的字符返回任何Unicode代碼點(diǎn)的最后一個(gè)實(shí)例的索引,如果s中沒有來自chars的Unicode代碼點(diǎn),則返回-1。
fmt.Println(strings.LastIndexAny(“go gopher”,“go”))
fmt.Println(strings.LastIndexAny(“go gopher”,“rodent”))
fmt.Println(strings.LastIndexAny(“go gopher”,“失敗”))
輸出:
4
8
-1
LastIndexByte返回s中最后一個(gè)c實(shí)例的索引,如果s中不存在c,則返回-1。
fmt.Println(strings.LastIndexByte(“Hello,world”,“l(fā)”))
fmt.Println(strings.LastIndexByte(“Hello,world”,“o”))
fmt.Println(strings.LastIndexByte(“Hello,world,world “, 'X'))
輸出:
10
8
-1
LastIndexFunc將索引返回到滿足f(c)的最后一個(gè)Unicode代碼點(diǎn)的s,如果沒有,則返回-1。
fmt.Println(strings.LastIndexFunc(“go 123”,unicode.IsNumber))
fmt.Println(strings.LastIndexFunc(“123 go”,unicode.IsNumber))
fmt.Println(strings.LastIndexFunc(“go”,unicode。 ISNUMBER))
輸出:
5
2
-1
Map返回字符串s的副本,其中所有字符都根據(jù)映射函數(shù)進(jìn)行了修改。如果映射返回負(fù)值,則從字符串中刪除該字符而不進(jìn)行替換。
rot13 := func(r rune) rune {
switch {
case r >= 'A' && r <= 'Z':
return 'A' + (r-'A'+13)%26
case r >= 'a' && r <= 'z':
return 'a' + (r-'a'+13)%26
}
return r
}
fmt.Println(strings.Map(rot13, "'Twas brillig and the slithy gopher..."))
Output:
'Gjnf oevyyvt naq gur fyvgul tbcure...
Repeat返回一個(gè)由字符串s的計(jì)數(shù)副本組成的新字符串。
如果count為負(fù)數(shù)或(len(s)* count)的結(jié)果溢出,則會(huì)發(fā)生混亂。
fmt.Println("ba" + strings.Repeat("na", 2))
Output:
banana
取代字符串s中的old為new,n為取代的次數(shù)
fmt.Println(strings.Replace("oink oink oink", "k", "ky", 2))
fmt.Println(strings.Replace("oink oink oink", "oink", "moo", -1))
Output:
oinky oinky oink
moo moo moo
將就字符串全部體會(huì)為新字符串
fmt.Println(strings.ReplaceAll("oink oink oink", "oink", "moo"))
Output:
moo moo moo
按照sep規(guī)則進(jìn)行切割s字符串,返回值為切片類型
fmt.Printf("%q\n", strings.Split("a,b,c", ","))
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" " "]
[""]
SplitAfter在每個(gè)sep實(shí)例之后切入所有子字符串并返回這些子字符串的切片。
如果s不包含sep且sep不為空,則SplitAfter返回長度為1的切片,其唯一元素為s。
如果sep為空,則SplitAfter在每個(gè)UTF-8序列之后拆分。如果s和sep都為空,則SplitAfter返回一個(gè)空切片。
它相當(dāng)于SplitAfterN,計(jì)數(shù)為-1。
fmt.Printf("%q\n", strings.SplitAfter("a,b,c", ","))
Output:
["a," "b," "c"]
SplitAfterN在每個(gè)sep實(shí)例之后切入子字符串并返回這些子字符串的切片。
計(jì)數(shù)確定要返回的子字符串?dāng)?shù):
n> 0:最多n個(gè)子串; 最后一個(gè)子字符串將是未分割的余數(shù)。
n == 0:結(jié)果是nil(零子串)
n <0:所有子串
s和sep的邊緣情況(例如,空字符串)按照SplitAfter文檔中的描述進(jìn)行處理。
fmt.Printf("%q\n", strings.SplitAfterN("a,b,c", ",", 2))
Output:
["a," "b,c"]
Title返回字符串s的副本,其中包含所有Unicode字母,這些字母開始映射到其標(biāo)題大小寫的單詞。
BUG(rsc):標(biāo)題Title用于單詞邊界的規(guī)則不能正確處理Unicode標(biāo)點(diǎn)符號(hào)。
fmt.Println(strings.Title("her royal highness"))
Output:
Her Royal Highness
ToLower返回字符串s的副本,其中所有Unicode字母都映射到它們的小寫字母。
fmt.Println(strings.ToLower("Gopher"))
Output:
gopher
將s字符串轉(zhuǎn)換為小寫
fmt.Println(strings.ToLower("Gopher"))
Output:
gopher
ToLowerSpecial使用c指定的大小寫映射返回字符串s的副本,其中所有Unicode字母都映射到它們的小寫字母。
fmt.Println(strings.ToLowerSpecial(unicode.TurkishCase, "?nnek ??"))
Output:
?nnek i?
將s字符串轉(zhuǎn)換為大寫
fmt.Println(strings.ToUpper("Gopher"))
Output:
GOPHER
ToUpperSpecial使用c指定的大小寫映射返回字符串s的副本,其中所有Unicode字母都映射到它們的大寫字母。
fmt.Println(strings.ToLowerSpecial(unicode.TurkishCase, "?nnek ??"))
Output:
?nnek i?
Trim返回字符串s的一個(gè)片段,其中包含cutset中包含的所有前導(dǎo)和尾隨Unicode代碼點(diǎn)。
fmt.Print(strings.Trim(“你好,Gophers !!!”,“!?”))
輸出:
你好,Gophers
TrimFunc返回字符串s的一個(gè)片段,其中所有前導(dǎo)和尾隨的Unicode代碼點(diǎn)c都滿足f(c)被刪除。
fmt.Print(strings.TrimFunc("???Hello, Gophers!!!", func(r rune) bool {
return !unicode.IsLetter(r) && !unicode.IsNumber(r)
}))
Output:
Hello, Gophers
TrimLeft返回字符串s的一個(gè)片段,其中包含cutset中包含的所有前導(dǎo)Unicode代碼點(diǎn)。
要?jiǎng)h除前綴,請改用TrimPrefix。
fmt.Print(strings.TrimLeft("???Hello, Gophers!!!", "!?"))
Output:
Hello, Gophers!!!
TrimLeftFunc返回字符串s的一個(gè)片段,其中所有前導(dǎo)的Unicode代碼點(diǎn)c都滿足f(c)被刪除。
fmt.Print(strings.TrimLeftFunc("???Hello, Gophers!!!", func(r rune) bool {
return !unicode.IsLetter(r) && !unicode.IsNumber(r)
}))
Output:
Hello, Gophers!!!
TrimPrefix返回s而沒有提供的前導(dǎo)前綴字符串。如果s不以prefix開頭,則返回s不變。
var s = "???Hello, Gophers!!!"
s = strings.TrimPrefix(s, "???Hello, ")
s = strings.TrimPrefix(s, "???Howdy, ")
fmt.Print(s)
Output:
Gophers!!!
TrimRight返回字符串s的一個(gè)片段,刪除了cutset中包含的所有尾隨Unicode代碼點(diǎn)。
要?jiǎng)h除后綴,請改用TrimSuffix。
fmt.Print(strings.TrimRight("???Hello, Gophers!!!", "!?"))
Output:
???Hello, Gophers
TrimRightFunc返回字符串s的一個(gè)片段,其中所有尾隨的Unicode代碼點(diǎn)c滿足f(c)被刪除。
fmt.Print(strings.TrimRightFunc("???Hello, Gophers!!!", func(r rune) bool {
return !unicode.IsLetter(r) && !unicode.IsNumber(r)
}))
Output:
???Hello, Gophers
TrimSpace返回字符串s的一部分,刪除所有前導(dǎo)和尾隨空格,如Unicode所定義。
fmt.Println(strings.TrimSpace(" \t\n Hello, Gophers \n\t\r\n"))
Output:
Hello, Gophers
TrimSuffix返回s而沒有提供的尾隨后綴字符串。如果s不以后綴結(jié)尾,則s保持不變。
var s = "???Hello, Gophers!!!"
s = strings.TrimSuffix(s, ", Gophers!!!")
s = strings.TrimSuffix(s, ", Marmots!!!")
fmt.Print(s)
Output:
???Hello
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。