How to count specific characters present in the slice in Golang?


In Golang, counting specific characters in a slice can be done by iterating over the slice and comparing each character with the target character. There are multiple ways to count the occurrence of a specific character in a slice, such as using a loop, a map, or the strings.Count function.

In this article, we will discuss each method with examples to help you understand how to count specific characters present in a slice in Golang.

Using a Loop

One way to count the occurrence of a specific character in a slice is by iterating over the slice and checking each character. We can use a loop to iterate over the slice and compare each character with the target character. If a match is found, we increment a counter.

Example

Here is an example code that demonstrates how to count the occurrence of a specific character using a loop −

package main

import "fmt"

func countChar(s []string, c string) int {
   count := 0
   for _, v := range s {
      if v == c {
         count++
      }
   }
   return count
}

func main() {
   // Declare a slice of strings
   mySlice := []string{"apple", "banana", "cherry", "date", "elderberry"}

   // Call the countChar function to count the number of times the character "a" appears in mySlice
   charCount := countChar(mySlice, "a")

   // Print the result
   fmt.Println("The character 'a' appears", charCount, "times in mySlice.")
}

Output

The character 'a' appears 0 times in mySlice.

In this code, we define a function countChar that takes a slice of strings s and a target character c. We initialize a counter count to zero and loop over the slice using a range loop. Inside the loop, we compare each string with the target character. If the character matches, we increment the counter. Finally, we return the count.

Using a Map

Another way to count the occurrence of a specific character in a slice is by using a map. We can create a map with characters as keys and their count as values. Then, we iterate over the slice and update the count in the map.

Example

Here is an example code that demonstrates how to count the occurrence of a specific character using a map −

package main

import "fmt"

func countChar(s []string, c string) int {
   countMap := make(map[string]int)
   for _, v := range s {
      countMap[v]++
   }
   return countMap[c]
}

func main() {
   s := []string{"a", "b", "c", "a", "b", "a"}
   c := "a"
   count := countChar(s, c)
   fmt.Printf("Count of %s in %v is %d\n", c, s, count)
}

Output

Count of a in [a b c a b a] is 3

In this code, we define a function countChar that takes a slice of strings s and a target character c. We create an empty map countMap to store the count of each character. We loop over the slice using a range loop and update the count of each character in the map. Finally, we return the count of the target character.

Using strings.Count

Golang's strings package provides a Count function that can be used to count the occurrence of a specific substring or character in a string. We can convert the slice to a string and use the Count function to count the occurrence of the target character.

Example

Here is an example code that demonstrates how to count the occurrence of a specific character using the strings.Count function −

package main

import "fmt"
import "strings"

func countChar(s []string, c string) int {
   str := strings.Join(s, "")
   return strings.Count(str, c)
}

func main() {
   s := []string{"hello", "world", "goodbye", "world"}
   c := "o"
   count := countChar(s, c)
   fmt.Printf("The character '%s' appears %d times in the slice.\n", c, count)
}

Output

The character 'o' appears 5 times in the slice.

In this code, we define a function countChar that takes a slice of strings s and a target character c. We join the slice of strings using the strings.Join function to convert it to a string. Then, we use the strings.Count function to count the occurrence of the target character in the string. Finally, we return the count.

Conclusion

In this article, we discussed different methods to count specific characters present in a slice in Golang. We learned how to use a loop, a map, and the strings.Count function to count the occurrence of a specific character. You can choose any method based on your requirements and the size of the slice.

Updated on: 05-May-2023

413 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements