golang 基础 strings 包(36)

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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容