golang 基础 strings 包(36)

zidea · · 1448 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

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

有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:zidea

查看原文:golang 基础 strings 包(36)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1448 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传