go為string提供了strings包來進行字串的主要操作。
hasprefix判斷字串是否已prefix開頭:
strings.
hasprefix
(s, prefix string
)bool
hassuffix判斷字串是否已suffix結尾:strings.
hassuffix
(s, suffix string
)bool
簡單的例子:
package main
import
("fmt"
"strings"
)func
main()
輸出:
prefix : false
suffix : true
contains判斷字串是否包含substr:strings.
contains
(s, substr string
)bool
index,lastindex判斷字串或字元在父字串中出現的位置:strings.
index
(s, str string
)int
strings.
lastindex
(s, str string
)int
index返回字串str在字串s中的位置,-1表示不包含。lastindex返回字串str在字串s中最後出現的位置。
例子:
package main
import
("fmt"
"strings"
)func
main()
輸出:
hi is: 1
g is: 10
ol is 11
s is 6
replace替換字串strings.
replace
(str, old,
new, n)
string
count統計字串出現的次數strings.
count
(s, str string
)int
例子:
package main
import
("fmt"
"strings"
)func
main()
輸出:
a count: 2
repeat重複字串,用於重複count次字串s,並返回乙個新的字串strings.
repeat
(s, count int
)string
例子:
package main
import
("fmt"
"strings"
)func
main()
輸出:
this is a golang!this is a golang!this is a golang!
修改字串大小寫strings.
tolower
(s)string
//小寫
strings.
toupper
(s)string
//大寫
例子:
package main
import
("fmt"
"strings"
)func
main()
輸出:
this is a golang!
this is a golang!
修剪字串
strings.trimspace(s) 提供了將字串開頭和結尾的空白字元去掉,如果想去掉其他字元,可以使用strings.trim(s, cut string) 來將開頭和結尾的cut字串,如果只是想去掉開頭或者結尾,可以使用trimleft,trimright
分割字串
strings.field(s)將會利用1個或者多個空白字串來作為動態長度的分隔符將字串分割成若干個小塊,並返回乙個slice,如果字串只包含空白字元,則返回乙個長度為0的slice。
strings.split(s, sep) 用於自定義分割符號來指定字串進行分割,返回slice。
拼接slice到字串
strings.join將型別為string的slice使用分隔符來拼接組成乙個字串:
strings.
join
(sl [
]string
, sep string
)
例子:
package main
import
("fmt"
"strings"
)func
main()
str =
"1,2,3,4,5"
sl = strings.
split
(str,
",")
fmt.
println
(sl)
str = strings.
join
(sl,
":")
fmt.
println
(str)
}
輸出:
[this is a golang!]
thisisa
golang!
[1 2 3 4 5]
1:2:3:4:5
從字串中讀取內容
strings,newreader(string)用於生成乙個reader並且讀取字串的內容,然後返回指向該reader的指標。
字串與其他型別的轉換
與字串相關的型別轉換都是同strconv包實現的。
如strconv.intsize 或者int型別所佔位數。
數字轉字串,可以使用strconv.itoa(i int)string。
字串轉數字,使用strconv.atoi(s string) (i int, err error), strconv.parsefloat(s string, bissize int) (f float64, err error)
官方文件strconv
官方文件strings
go中string和slice no copy轉換
在go裡面,string和slice的互換是需要進行記憶體拷貝的,雖然在底層,它們都只是用 pointer len來表示的一段記憶體。通常,我們不會在意string和slice的轉換帶來的記憶體拷貝效能問題,但是總有些地方需要關注的,剛好在看vitess 的時候,發現了一種很hack的做法,stri...
go中的string操作
strings 判斷字串s是否以prefix開頭 strings.hasprefix s string,preffix string bool 判斷字串s是否以suffix結尾 stirngs.hassuffix s string,suffix string bool 判斷str在s中首次出現的位置...
go語言 slice和string的聯絡
str hello atguigu 使用切片獲取到 atguigu slice str 6 fmt.println slice slice 如果需要修改字串,可以看下面 使用型別轉換 將string轉換為byte切片 修改字串後 再講byte切片轉換為string arr1 byte str arr...