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

csv
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)
}
  1. 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
  1. 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
  1. 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