Go – Count Substring in String

To count or get the number of occurrences of a substring in a string in Go language, call Count function of strings package, and pass the string and substring as arguments to it.

The syntax to count the occurrences of substring substr in string str using Count function is

</>
Copy
strings.Count(str, substr)

Count function returns an integer representing the number of non-overlapping occurrences of substring in the string.

Examples

In the following example, we take two strings, str and substr, and count the occurrences of substr in str using Count function.

example.go

</>
Copy
package main

import (
	"fmt"
	"strings"
)

func main() {
	str := "Good Morning! Good Day!"
	substr := "Good"
	count := strings.Count(str, substr)
	fmt.Println("The number of occurrences of substring in the string is: ", count)
}

Output

The number of occurrences of substring in the string is:  2

Now, let us take the values for str and substr, such there substr has overlapping occurrences in str. We know that count only returns non-overlapping occurrences.

example.go

</>
Copy
package main

import (
	"fmt"
	"strings"
)

func main() {
	str := "ababababa"
	substr := "aba"
	count := strings.Count(str, substr)
	fmt.Println("The number of occurrences of substring in the string is: ", count)
}

There are 4 overlapping occurrences of aba in ababababa, but only 2 non-overlapping occurrences.

Output

The number of occurrences of substring in the string is:  2

Conclusion

In this Golang Tutorial, we learned how to count the number of non-overlapping occurrences of a substring in a string in Go programming language, with the help of example programs.