Strings and Text Processing
Split and Join
strings.Split turns one string into parts, and strings.Join combines parts again.
split join
Splitting and joining are common steps when text uses a separator such as a comma.
Split and Join
split_join.go
Replay: real traced execution (multi-file project)
package main
import (
"fmt"
"strings"
)
func main() {
var csv = "go,python,ruby"
parts := strings.Split(csv, ",")
joined := strings.Join(parts, " | ")
fmt.Println("csv=", csv)
fmt.Println("count=", len(parts))
fmt.Println("first=", parts[0])
fmt.Println("joined=", joined)
}
package main
import (
"fmt"
"strings"
)
func main() {
var csv = "red,green,blue"
parts := strings.Split(csv, ",")
joined := strings.Join(parts, " | ")
fmt.Println("csv=", csv)
fmt.Println("count=", len(parts))
fmt.Println("first=", parts[0])
fmt.Println("joined=", joined)
}
package main
import (
"fmt"
"strings"
)
func main() {
var csv = "north,south"
parts := strings.Split(csv, ",")
joined := strings.Join(parts, " | ")
fmt.Println("csv=", csv)
fmt.Println("count=", len(parts))
fmt.Println("first=", parts[0])
fmt.Println("joined=", joined)
}
csv ← "go,python,ruby", parts ← []string{"go", "python", "ruby"}
8func main() {9 var csv→ "go,python,ruby" = "go,python,ruby" //@csv="red,green,blue", "north,south"10 parts→ []string{"go", "python", "ruby"} := strings.Split(csv"go,python,ruby", ",")11 joined→ "go | python | ruby" := strings.Join(parts[]string{"go", "python", "ruby"}, " | ")1213 fmt.Println("csv=", csv"go,python,ruby")14 fmt.Println("count=", len(parts[]string{"go", "python", "ruby"}))15 fmt.Println("first=", parts[0]"go")16 fmt.Println("joined=", joined"go | python | ruby")17}outputcsv= go,python,ruby count= 3 first= go joined= go | python | ruby
csv ← "red,green,blue", parts ← []string{"red", "green", "blue"}
8func main() {9 var csv→ "red,green,blue" = "red,green,blue"10 parts→ []string{"red", "green", "blue"} := strings.Split(csv"red,green,blue", ",")11 joined→ "red | green | blue" := strings.Join(parts[]string{"red", "green", "blue"}, " | ")1213 fmt.Println("csv=", csv"red,green,blue")14 fmt.Println("count=", len(parts[]string{"red", "green", "blue"}))15 fmt.Println("first=", parts[0]"red")16 fmt.Println("joined=", joined"red | green | blue")17}outputcsv= red,green,blue count= 3 first= red joined= red | green | blue
csv ← "north,south", parts ← []string{"north", "south"}, joined ← "north | south"
8func main() {9 var csv→ "north,south" = "north,south"10 parts→ []string{"north", "south"} := strings.Split(csv"north,south", ",")11 joined→ "north | south" := strings.Join(parts[]string{"north", "south"}, " | ")1213 fmt.Println("csv=", csv"north,south")14 fmt.Println("count=", len(parts[]string{"north", "south"}))15 fmt.Println("first=", parts[0]"north")16 fmt.Println("joined=", joined"north | south")17}outputcsv= north,south count= 2 first= north joined= north | south