Mastering String Operations in Go

Lesson Introduction

Welcome! Today, we're going to delve into the crucial operations associated with Strings in Go. Strings are fundamental in most programming languages as they are used for displaying and manipulating textual data. In this lesson, you'll learn about the basic string operations in Go, such as concatenationcomparison, and the use of common functions from the strings package.

Revising String Concatenation

Even though we already know what concatenation is and how it works, revisiting it strengthens our understanding! Concatenation — the process of joining items together — is a principal string operation. In Go, we achieve string concatenation by using the + operator.

package main

import "fmt"

func main() {
    var hello = "Hello, "
    var world = "World!"
    var greeting = hello + world

    fmt.Println(greeting) // "Hello, World!"
}

In this case, "Hello, " and "World!" were combined to form the string "Hello, World!".

Comparing Strings

There are often times when we need to compare strings. Fortunately, in Go, the simple comparison operators == and < work perfectly fine.

package main

import "fmt"

func main() {
    var firstWord = "Hello"
    var secondWord = "Hello"
    var areEqual = firstWord == secondWord

    fmt.Println(areEqual) // Outputs: true
}

Here, as firstWord and secondWord are equal, areEqual is true.

The < operator is used to determine if one string is alphabetically before the other.

package main

import "fmt"

func main() {
    var firstWord = "Apple"
    var secondWord = "Banana"
    var isLess = firstWord < secondWord
    
    fmt.Println(firstWord, "is less than", secondWord, "?", isLess) // Outputs: Apple is less than Banana? true
}

As you can see, the comparison result is true, which means that alphabetically, "Apple" comes before "Banana", because A comes before B. A string that would come before another string in the dictionary is considered less than the other. In case of a tie, Go will compare the following letter. For example, "Apple" will be less than "Application", because e is less than i. As the first four letters in the words are equal, Go compares the fifth one.

Important String Functions: len

In Go, unlike some other languages, strings do not have built-in methods. However, the Go Standard Library provides a package named strings which contains many useful string-related functions. Among them, some functions are pretty common:

  • len(): This function returns the number of characters in a string.
package main

import "fmt"

func main() {
    var word = "Hello"
    var length = len(word)

    fmt.Println(length) // 5
}

Important String Functions: ToLower and ToUpper

  • strings.ToLower() and strings.ToUpper(): These functions return the string either in lowercase or in uppercase, respectively.
package main

import (
    "fmt"
    "strings"
)

func main() {
    var word = "Hello"
    var lowerCaseWord = strings.ToLower(word)
    var upperCaseWord = strings.ToUpper(word)

    fmt.Println(lowerCaseWord) // "hello"
    fmt.Println(upperCaseWord) // "HELLO"
}

Important String Functions: TrimSpace

  • strings.TrimSpace(): This function removes all white spaces at the beginning and the end of a string.
package main

import (
    "fmt"
    "strings"
)

func main() {
    var sentence = " Hello, World!   "
    var trimmedSentence = strings.TrimSpace(sentence)

    fmt.Println(trimmedSentence) // "Hello, World!"
}