美文网首页Golang程序员Go
golang 基础 strings 包(36)

golang 基础 strings 包(36)

作者: zidea | 来源:发表于2019-04-25 16:57 被阅读12次
    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
    

    相关文章

      网友评论

        本文标题:golang 基础 strings 包(36)

        本文链接:https://www.haomeiwen.com/subject/qqiygqtx.html