Golang程序员Go

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
上一篇下一篇

猜你喜欢

热点阅读