Substring: How to Split a String

· 216 words · 2 minutes read

In the example below we are looking at how to take the first x number of characters from the start of a string. If we know a character we want to separate on, like a space, we can use strings.Split() instead. But for this we’re looking to get the first 6 characters as a new string.

To do this we first convert it into a rune, allowing for better support in different languages and allowing us to use it like an array. Then we pick the first characters using [0:6] and converting it back to a string.

Split Based on Position:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
package main

import (
	"fmt"
)

func main() {

	myString := "Hello! This is a golangcode.com test ;)"

	// Step 1: Convert it to a rune
	a := []rune(myString)

	// Step 2: Grab the num of chars you need
	myShortString := string(a[0:6])

	fmt.Println(myShortString)
}

Split Based on Character:

The alternative way, using the strings package would be:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
package main

import (
	"fmt"
	"strings"
)

func main() {

	myString := "Hello! This is a golangcode.com test ;)"

	strParts := strings.Split(myString, "!")

	fmt.Println(strParts[0])
}

Image of Author Edd Turtle

Author:  Edd Turtle

Edd is the Lead Developer at Hoowla, a prop-tech startup, where he spends much of his time working on production-ready Go and PHP code. He loves coding, but also enjoys cycling and camping in his spare time.

See something which isn't right? You can contribute to this page on GitHub or just let us know in the comments below - Thanks for reading!