Open In App

Counting number of repeating words in a Golang String

Last Updated : 04 May, 2020
Comments
Improve
Suggest changes
Like Article
Like
Report
Given a string, the task is to count the number of words being repeated in that particular string in Golang. Example:
Input: s = "She is mother of my mother."
Output: She = 1     
         is = 1
         mother = 2
         of = 1
         my = 1
To count the number of repeating words, first, the string is taken as input and then strings.Fields() function is used to split the string. A function "repetition" is defined to count the number of words getting repeated. Below is the program in Golang to count the number of repeating words in a given string. C
// Golang program to count the number of
// repeating words in given Golang String
package main

import (
    "fmt"
    "strings"
)

func repetition(st string) map[string]int {

    // using strings.Field Function
    input := strings.Fields(st)
    wc := make(map[string]int)
    for _, word := range input {
        _, matched := wc[word]
        if matched {
            wc[word] += 1
        } else {
            wc[word] = 1
        }
    }
    return wc
}

// Main function
func main() {
    input := "betty bought the butter , the butter was bitter , " +
        "betty bought more butter to make the bitter butter better "
    for index, element := range repetition(input) {
        fmt.Println(index, "=", element)
    }
}
Output:
the = 3
, = 2
bitter = 2
to = 1
make = 1
better = 1
betty = 2
bought = 2
butter = 4
was = 1
more = 1
Explanation: In the above program, we first take a string as an input and then split that string using strings.Fields() function. If the same word has occurred, the count increases by one else value 1 is returned that implies that word occurs only once in the string.

Next Article

Similar Reads