golang 基础 strings 包(36)
2019-04-25 本文已影响12人
zidea
square-gopher.png
对于字符串操作是 web 开发再常见不过操作,可能我们通过对字符串拼接,截取以及拆分来展示数据呈现给用户。
Split
rec := "zidea,angularjs,javascript"
for _, info := range strings.Split(rec,","){
fmt.Printf("%s|",info)
}
通过 Split 按按指定的分隔符(,)将字符串进行拆分为集合形式,可以使用 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 进行分隔会保留分隔符号(,)
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 库或者了解函数式编程应该不会陌生,strings.FieldsFunc
函数第一次参数为中第一个参数为字符串,第二个参数是函数接受字符串中每一个字符作为参数返回一种 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,",")
用于计数 (,) 出现次数,而 strings.Replace 用于替换字符串中字符,第一个参数为字符串,第二个参数表示要替换的字符,第三个参数为要替换为的字符,最后一个参数为替换次数,-1 表示没有次数限制进行替换。
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