воскресенье, 6 сентября 2020 г.

Пакет strings в Golang, функции HasPrefix, HasSuffix, Index

Функция HasPrefix

func HasPrefix(s, prefix string) bool

HasPrefix проверяет, начинается ли строка s с prefix.

Пример использования HasPrefix

package main

import (
    "fmt"
    "strings"
)

func main() {
    fmt.Println(strings.HasPrefix("Gopher", "Go"))
    fmt.Println(strings.HasPrefix("Gopher", "C"))
    fmt.Println(strings.HasPrefix("Gopher", ""))
}

Вывод:

true
false
true

Функция HasSuffix

func HasSuffix(s, suffix string) bool

HasSuffix проверяет, заканчивается ли строка s на suffix.

Пример использования HasPrefix

package main

import (
    "fmt"
    "strings"
)

func main() {
    fmt.Println(strings.HasSuffix("Amigo", "go"))
    fmt.Println(strings.HasSuffix("Amigo", "O"))
    fmt.Println(strings.HasSuffix("Amigo", "Ami"))
    fmt.Println(strings.HasSuffix("Amigo", ""))
}

Вывод:

true
false
false
true

Функция Index

func Index(s, substr string) int

Index возвращает индекс первого экземпляра substr в s или -1, если substr отсутствует в s.

Пример использования Index

package main

import (
    "fmt"
    "strings"
)

func main() {
    fmt.Println(strings.Index("chicken", "ken"))
    fmt.Println(strings.Index("chicken", "dmr"))
}

Вывод:

4
-1

Функция IndexAny

func IndexAny(s, chars string) int

IndexAny возвращает индекс первого экземпляра любой кодовой точки Юникода из chars в s или -1, если в s нет кодовой точки Юникода из chars.

Пример использования IndexAny

package main

import (
    "fmt"
    "strings"
)

func main() {
    fmt.Println(strings.IndexAny("chicken", "aeiouy"))
    fmt.Println(strings.IndexAny("crwth", "aeiouy"))
}

Вывод:

2
-1

Функция IndexByte

func IndexByte(s string, c byte) int

IndexByte возвращает индекс первого экземпляра c в s или -1, если c отсутствует в s.

Пример использования IndexByte

package main

import (
    "fmt"
    "strings"
)

func main() {
    fmt.Println(strings.IndexByte("golang", 'g'))
    fmt.Println(strings.IndexByte("gophers", 'h'))
    fmt.Println(strings.IndexByte("golang", 'x'))
}

Вывод:

0
3
-1

Функция IndexFunc

func IndexFunc(s string, f func(rune) bool) int

IndexFunc возвращает индекс в s первой кодовой точки Unicode, удовлетворяющей f(c), или -1, если нет.

Пример использования IndexFunc

package main

import (
    "fmt"
    "strings"
    "unicode"
)

func main() {
    f := func(c rune) bool {
        return unicode.Is(unicode.Han, c)
    }
    fmt.Println(strings.IndexFunc("Hello, 世界", f))
    fmt.Println(strings.IndexFunc("Hello, world", f))
}

Вывод:

7
-1

Функция IndexRune

func IndexRune(s string, r rune) int

IndexRune возвращает индекс первого экземпляра кодовой точки Unicode r или -1, если руна отсутствует в s. Если r - это utf8.RuneError, возвращает первый экземпляр любой недопустимой последовательности байтов UTF-8.

Пример использования IndexRune

package main

import (
    "fmt"
    "strings"
)

func main() {
    fmt.Println(strings.IndexRune("chicken", 'k'))
    fmt.Println(strings.IndexRune("chicken", 'd'))
}

Вывод:

4
-1


Читайте также:


Комментариев нет:

Отправить комментарий