Cookies management by TermsFeed Cookie Consent
Russia has invaded Ukraine and already killed tens of thousands of civilians, with many more raped or tortured. It's a genocide. We need your help. Let's fight back against the Russian regime.
Help Ukraine! Fight the Russian regime!

🔁 Repeat a string in Go

shorts strings

Please consider supporting us by disabling your ad blocker

To repeat a given string in Go, you can use the strings.Repeat() function from the strings package.

It takes a string and the number of times it should be repeated as arguments and returns the multiplied string as output. The function panics if count is negative or if len(s) * count overflows.

Look at the following example:

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

import (
    "fmt"
    "strings"
    "unicode/utf8"
)

func main() {
    s := "gosamples.dev "
    repeated := strings.Repeat(s, 3)
    lineSeparator := strings.Repeat("-", utf8.RuneCountInString(repeated))

    fmt.Println(repeated)
    fmt.Println(lineSeparator)
}

Output:

gosamples.dev gosamples.dev gosamples.dev 
------------------------------------------

In line 11, we create a new multiplied string which is the string "gosamples.dev " repeated three times. Then, in line 12, we want to make a line separator consisting of a repeated - character. Its length should be equal to the number of characters of the previous string.

Note that we use the utf8.RuneCountInString() function to count the number of characters instead of len(). The former counts the runes (Unicode code points) in the string, while the latter counts the number of bytes. When counting characters in a string "gosamples.dev gosamples.dev gosamples.dev ", both functions will return the same number; however it is good to make a habit of using utf8.RuneCountInString() when you want to count the number of characters. It will prevent incorrect results when you change the input string:

s := "€€€"
fmt.Println(len(s))
fmt.Println(utf8.RuneCountInString(s))
9
3

The € (euro) symbol is a three-byte character, encoded in UTF-8 with bytes 0xE2, 0x82, 0xAC.

🐾 How to compare strings in Go

shorts introduction strings

🥇 How to uppercase the first letter of each word in Go

shorts strings

🔠 String to uppercase in Go

shorts strings