Функция strings.LastIndexAny
Функция strings.LastIndexAny возвращает индекс последнего
вхождения любого символа из переданного набора в строке.
Первый параметр — это исходная строка для поиска, второй —
строка с символами, которые нужно найти. Функция возвращает
целое число: позицию последнего найденного символа или
-1, если ни один символ из набора не был найден.
Синтаксис
strings.LastIndexAny(str, chars)
Пример
Давайте найдем позицию последнего символа из набора
"aeiou" в строке "hello, world":
package main
import (
"fmt"
"strings"
)
func main() {
res := strings.LastIndexAny("hello, world", "aeiou")
fmt.Println(res)
}
Результат выполнения кода:
8
В данном случае последняя гласная буква 'o' находится
на позиции 8.
Пример
Теперь проверим, что вернет функция, если ни один символ из набора не встречается в строке:
package main
import (
"fmt"
"strings"
)
func main() {
res := strings.LastIndexAny("abcde", "xyz")
fmt.Println(res)
}
Результат выполнения кода:
-1
Поскольку ни один из символов 'x', 'y' или 'z'
не встречается в строке "abcde", функция возвращает
-1.
Пример
Если в строке встречается несколько совпадений, функция возвращает позицию самого последнего из них:
package main
import (
"fmt"
"strings"
)
func main() {
res := strings.LastIndexAny("golang", "go")
fmt.Println(res)
}
Результат выполнения кода:
5
Символы 'g' и 'o' встречаются в строке несколько раз,
но последнее вхождение (символ 'n' из набора, но не последний
из набора? Символ 'o' на позиции 5 — это последний найденный)
находится на позиции 5.
Смотрите также
-
функцию
strings.IndexAny,
которая возвращает индекс первого вхождения любого символа из набора -
функцию
strings.LastIndex,
которая возвращает индекс последнего вхождения подстроки -
функцию
strings.LastIndexByte,
которая возвращает индекс последнего вхождения байта -
функцию
strings.ContainsAny,
которая проверяет наличие любого символа из набора в строке