Функция strings.Index
Функция strings.Index возвращает индекс первого вхождения подстроки в строку.
Если подстрока найдена, функция возвращает ее позицию (индексация начинается с нуля).
Если подстрока не найдена, возвращается -1.
Первым параметром функция принимает исходную строку для поиска, вторым — подстроку,
которую нужно найти.
Синтаксис
strings.Index(str, substr)
Пример
Давайте найдем позицию подстроки 'cde' в строке 'abcde':
package main
import (
"fmt"
"strings"
)
func main() {
res := strings.Index("abcde", "cde")
fmt.Println(res)
}
Результат выполнения кода:
2
Пример
Давайте попробуем найти подстроку 'xyz', которой нет в строке 'abcde':
package main
import (
"fmt"
"strings"
)
func main() {
res := strings.Index("abcde", "xyz")
fmt.Println(res)
}
Результат выполнения кода:
-1
Пример
Функция strings.Index чувствительна к регистру.
Давайте проверим это на примере поиска подстроки 'BCD' в строке 'abcde':
package main
import (
"fmt"
"strings"
)
func main() {
res := strings.Index("abcde", "BCD")
fmt.Println(res)
}
Результат выполнения кода:
-1
Как видите, подстрока не найдена, потому что регистр символов не совпадает.
Для поиска без учета регистра используйте функцию strings.EqualFold в комбинации с другими методами.
Смотрите также
-
функцию
strings.Contains,
которая проверяет наличие подстроки в строке -
функцию
strings.LastIndex,
которая возвращает позицию последнего вхождения подстроки -
функцию
strings.IndexAny,
которая возвращает позицию первого вхождения любого символа из набора -
функцию
strings.Count,
которая подсчитывает количество вхождений подстроки