Функция strings.Count

Функция strings.Count подсчитывает количество непересекающихся вхождений подстроки в строке. В первый параметр мы передаем строку для поиска, во второй параметр мы передаем подстроку, количество вхождений которой нужно подсчитать. Функция возвращает целое число типа int. Если подстрока пустая, функция возвращает количество рун в строке плюс один.

Синтаксис

gostrings.Count(str, substr)

Пример

Давайте подсчитаем, сколько раз подстрока "bc" встречается в строке "abcbcde":

gopackage main

import (
  "fmt"
  "strings"
)

func main() {
  res := strings.Count("abcbcde", "bc")
  fmt.Println(res)
}

Результат выполнения кода:

go2

Пример

Давайте подсчитаем, сколько раз подстрока "x" встречается в строке "abcde":

gopackage main

import (
  "fmt"
  "strings"
)

func main() {
  res := strings.Count("abcde", "x")
  fmt.Println(res)
}

Результат выполнения кода:

go0

Пример

Особенность функции strings.Count заключается в том, что она считает только непересекающиеся вхождения. Давайте проверим это на примере строки "aaaaa" и подстроки "aa":

gopackage main

import (
  "fmt"
  "strings"
)

func main() {
  res := strings.Count("aaaaa", "aa")
  fmt.Println(res)
}

Результат выполнения кода:

go2

Как видите, функция нашла два непересекающихся вхождения: первая и вторая пары символов "aa" и третья и четвертая пары. Пятый символ остался без пары.

Пример

Если передать пустую подстроку, функция возвращает количество рун в строке плюс один:

gopackage main

import (
  "fmt"
  "strings"
)

func main() {
  res := strings.Count("abcde", "")
  fmt.Println(res)
}

Результат выполнения кода:

go6

Смотрите также

  • функцию strings.Contains,
    которая проверяет наличие подстроки в строке
  • функцию strings.Index,
    которая возвращает позицию первого вхождения подстроки
  • функцию strings.LastIndex,
    которая возвращает позицию последнего вхождения подстроки
  • функцию strings.ReplaceAll,
    которая заменяет все вхождения подстроки на другую строку