Функция strings.LastIndex

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

Синтаксис

gostrings.LastIndex(str, substr)

Пример

Давайте найдем индекс последнего вхождения подстроки 'cd' в строке 'abcdcd':

gopackage main

import (
  "fmt"
  "strings"
)

func main() {
  res := strings.LastIndex("abcdcd", "cd")
  fmt.Println(res)
}

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

go4

Обратите внимание, что подстрока 'cd' встречается дважды: на позициях 2 и 4. Функция возвращает индекс последнего вхождения - 4.

Пример

Давайте проверим, что возвращает функция, если подстрока не найдена в строке. Ищем подстроку 'xyz' в строке 'abcdcd':

gopackage main

import (
  "fmt"
  "strings"
)

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

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

go-1

Функция вернула -1, так как подстрока 'xyz' не найдена в исходной строке.

Пример

Давайте найдем индекс последнего вхождения пустой строки в строку 'abcde':

gopackage main

import (
  "fmt"
  "strings"
)

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

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

go5

При поиске пустой строки функция возвращает длину строки, так как пустая строка считается найденной в конце строки.

Пример

Давайте найдем последнее вхождение подстроки 'a' в строке 'ababa':

gopackage main

import (
  "fmt"
  "strings"
)

func main() {
  res := strings.LastIndex("ababa", "a")
  fmt.Println(res)
}

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

go4

Символ 'a' встречается на позициях 0, 2 и 4. Функция возвращает индекс последнего вхождения - 4.

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

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