Функция strings.LastIndexAny

Функция strings.LastIndexAny возвращает индекс последнего вхождения любого символа из переданного набора в строке. Первый параметр — это исходная строка для поиска, второй — строка с символами, которые нужно найти. Функция возвращает целое число: позицию последнего найденного символа или -1, если ни один символ из набора не был найден.

Синтаксис

gostrings.LastIndexAny(str, chars)

Пример

Давайте найдем позицию последнего символа из набора "aeiou" в строке "hello, world":

gopackage main

import (
  "fmt"
  "strings"
)

func main() {
  res := strings.LastIndexAny("hello, world", "aeiou")
  fmt.Println(res)
}

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

go8

В данном случае последняя гласная буква 'o' находится на позиции 8.

Пример

Теперь проверим, что вернет функция, если ни один символ из набора не встречается в строке:

gopackage main

import (
  "fmt"
  "strings"
)

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

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

go-1

Поскольку ни один из символов 'x', 'y' или 'z' не встречается в строке "abcde", функция возвращает -1.

Пример

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

gopackage main

import (
  "fmt"
  "strings"
)

func main() {
  res := strings.LastIndexAny("golang", "go")
  fmt.Println(res)
}

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

go5

Символы 'g' и 'o' встречаются в строке несколько раз, но последнее вхождение (символ 'n' из набора, но не последний из набора? Символ 'o' на позиции 5 — это последний найденный) находится на позиции 5.

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

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