How to split Golang strings without deleting separator?

前端 未结 3 1938
南笙
南笙 2021-01-15 08:55

According to the answer at How to split a string and assign it to variables in Golang? splitting a string results in an array of strings where the separator is not present i

3条回答
  •  Happy的楠姐
    2021-01-15 09:32

    The answer above by daplho great and simple. Sometimes I just like to provide an alternative to remove the magic of a function

    package main
    
    import "fmt"
    
    var s = "Potato:Salad:Popcorn:Cheese"
    
    func main() {
        a := split(s, ':')
        fmt.Println(a)
    }
    
    func split(s string, sep rune) []string {
        var a []string
        var j int
        for i, r := range s {
            if r == sep {
                a = append(a, s[j:i+1])
                j = i + 1
            }
        }
        a = append(a, s[j:])
        return a
    }
    

    https://goplay.space/#h9sDd1gjjZw

    As a side note, the standard lib version is better than the hasty one above

    goos: darwin
    goarch: amd64
    BenchmarkSplit-4             5000000           339 ns/op
    BenchmarkSplitAfter-4       10000000           143 ns/op
    

    So go with that lol

提交回复
热议问题