對(duì)于字符串操作是 web 開發(fā)再常見不過操作印荔,可能我們通過對(duì)字符串拼接堪嫂,截取以及拆分來展示數(shù)據(jù)呈現(xiàn)給用戶食侮。
Split
rec := "zidea,angularjs,javascript"
for _, info := range strings.Split(rec,","){
fmt.Printf("%s|",info)
}
通過 Split 按按指定的分隔符(,)將字符串進(jìn)行拆分為集合形式苍苞,可以使用 SplitN() 指定此處
rec := "zidea,angularjs,javascript"
for _, info := range strings.SplitN(rec,",",2){
fmt.Printf("%s|",info)
}
zidea|angularjs,javascript|
for _, info := range strings.SplitAfter(rec,","){
fmt.Printf("%s|",info)
}
zidea,|angularjs,|javascript|jangwoodeMacBook-Air
使用 SplitAfter 進(jìn)行分隔會(huì)保留分隔符號(hào)(,)
strings.FieldsFunc
recs := []string {
"zidea,angularjs,javascript",
"zidea\treactjs\tjavascript",
"zidea*vuejs*javascript",
}
for _, tut := range recs{
fmt.Println(strings.FieldsFunc(tut,func(char rune) bool {
switch char {
case '\t','*',',':
return true
}
return false
}))
}
可以通過 strings.FieldsFunc 自定義分隔符遏插,如果用過 javascript 的 underscore 庫或者了解函數(shù)式編程應(yīng)該不會(huì)陌生谦秧,strings.FieldsFunc
函數(shù)第一次參數(shù)為中第一個(gè)參數(shù)為字符串蝎土,第二個(gè)參數(shù)是函數(shù)接受字符串中每一個(gè)字符作為參數(shù)返回一種 bool 值如果為 true 表示分隔符樱报。
commaCounter := strings.Count(rec,",")
fmt.Printf("count %d\n", commaCounter)
placedRec := strings.Replace(rec,",","|",-1)
fmt.Printf("replaced string %s",placedRec)
這里strings.Count(rec,",")
用于計(jì)數(shù) (,) 出現(xiàn)次數(shù),而 strings.Replace 用于替換字符串中字符闪萄,第一個(gè)參數(shù)為字符串梧却,第二個(gè)參數(shù)表示要替換的字符,第三個(gè)參數(shù)為要替換為的字符败去,最后一個(gè)參數(shù)為替換次數(shù)放航,-1 表示沒有次數(shù)限制進(jìn)行替換。
reader := strings.NewReader("Coffee")
for{
char, size, err := reader.ReadRune()
if err != nil {
if err == io.EOF{
break
}
panic(err)
}
fmt.Printf("%U '%c' %d: % X\n", char, char, size, []byte(string(char)))
}
func Contains(s, substr string) bool