Go Basics
Go Strings and the strings Package
Join, search, split, trim and slice text in Go.
What you'll learn
- Building strings
- Contains, Index, Split
- Slicing a string
message[0:5]
H0
e1
l2
l3
o4
,5
Read-only text with many helpers
A Go string is a read-only sequence of bytes, usually UTF-8 text. You cannot change a string in place, but you can build new ones, and the strings package has functions for most everyday jobs.
+= builds a new string. len counts bytes. Contains and Index search the text, Split cuts it at a separator and returns a slice, and message[0:5] takes the bytes from position 0 up to, but not including, 5.
Key points
- A string cannot be changed in place.
- len counts bytes.
message[0:5]takes bytes 0 to 4.
Runnable Go example
main.go
package main
import (
"fmt"
"strings"
)
func main() {
message := "Hello, Go"
message += "!"
fmt.Println(message)
fmt.Println(len(message), strings.ToUpper(message))
fmt.Println(strings.Contains(message, "Go"), strings.Index(message, "Go"))
fmt.Println(strings.Split("a,b,c", ","))
fmt.Println(strings.Repeat("=", 5), strings.TrimSpace(" padded "))
fmt.Println(message[0:5], string(message[7]))
}
Hello, Go!
10 HELLO, GO!
true 7
[a b c]
===== padded
Hello GPractice
Open the example in the online compiler, change a value or add a line, and predict the output before you run it. Then break the code on purpose and read the compiler's message.
Finished this lesson?
Mark it as learned to track your progress.
Your progress is saved in this browser Sign in to keep it on every device.
Practice with a challenge
Use what this lesson covers to solve a real problem. Each challenge runs in your browser with instant tests and an AI review.
- Count Vowels Count the vowels in a piece of text. Easy
- Initials From a Name Build uppercase initials from a full name. Easy