Функция strings.Index

Функция strings.Index возвращает индекс первого вхождения подстроки в строку. Если подстрока найдена, функция возвращает ее позицию (индексация начинается с нуля). Если подстрока не найдена, возвращается -1. Первым параметром функция принимает исходную строку для поиска, вторым — подстроку, которую нужно найти.

Синтаксис

gostrings.Index(str, substr)

Пример

Давайте найдем позицию подстроки 'cde' в строке 'abcde':

gopackage main

import (
  "fmt"
  "strings"
)

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

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

go2

Пример

Давайте попробуем найти подстроку 'xyz', которой нет в строке 'abcde':

gopackage main

import (
  "fmt"
  "strings"
)

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

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

go-1

Пример

Функция strings.Index чувствительна к регистру. Давайте проверим это на примере поиска подстроки 'BCD' в строке 'abcde':

gopackage main

import (
  "fmt"
  "strings"
)

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

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

go-1

Как видите, подстрока не найдена, потому что регистр символов не совпадает. Для поиска без учета регистра используйте функцию strings.EqualFold в комбинации с другими методами.

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

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