среда, 9 сентября 2020 г.

Пакет strings в Golang, функции Split

Функция Split

func Split(s, sep string) []string

Разбивает срезы s на все подстроки, разделенные sep, и возвращает срез подстрок между этими разделителями.

Если s не содержит sep, а sep не пуст, Split возвращает срез длиной 1, единственным элементом которого является s.

Если sep пуст, Split разбивает после каждой последовательности UTF-8. Если и s, и sep пусты, Split возвращает пустой срез.

Это эквивалентно SplitN со счетчиком -1.

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

package main

import (
    "fmt"
    "strings"
)

func main() {
    fmt.Printf("%q\n", strings.Split("a,b,c", ","))
    fmt.Printf("%q\n", strings.Split("a man a plan a canal panama", "a "))
    fmt.Printf("%q\n", strings.Split(" xyz ", ""))
    fmt.Printf("%q\n", strings.Split("", "Bernardo O'Higgins"))
}

Вывод:

["a" "b" "c"]
["" "man " "plan " "canal panama"]
[" " "x" "y" "z" " "]
[""]

Функция SplitAfter

func SplitAfter(s, sep string) []string

SplitAfter разделяет s на все подстроки после каждого экземпляра sep и возвращает срез этих подстрок.

Если s не содержит sep, а sep не пуст, SplitAfter возвращает срез длиной 1, единственным элементом которого является s.

Если sep пуст, SplitAfter разделяется после каждой последовательности UTF-8. Если и s, и sep пусты, SplitAfter возвращает пустой срез.

Это эквивалентно SplitAfterN со счетчиком -1.

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

package main

import (
    "fmt"
    "strings"
)

func main() {
    fmt.Printf("%q\n", strings.SplitAfter("a,b,c", ","))
}

Вывод:

["a," "b," "c"]

Функция SplitAfterN

func SplitAfterN(s, sep string, n int) []string

SplitAfterN разделяет s на подстроки после каждого экземпляра sep и возвращает срез этих подстрок.

Счетчик определяет количество возвращаемых подстрок:

n > 0: не более n подстрок; последняя подстрока будет неразделенным остатком.
n == 0: результат равен nil (нулевые подстроки)
n < 0: все подстроки

Крайние случаи для s и sep (например, пустые строки) обрабатываются, как для SplitAfter.

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

package main

import (
    "fmt"
    "strings"
)

func main() {
    fmt.Printf("%q\n", strings.SplitAfterN("a,b,c", ",", 2))
}

Вывод:

["a," "b,c"]

Функция SplitN

func SplitN(s, sep string, n int) []string

SplitN разбивает s на подстроки, разделенные sep, и возвращает срез подстрок между этими разделителями.

Счетчик определяет количество возвращаемых подстрок:

n > 0: не более n подстрок; последняя подстрока будет неразделенным остатком.
n == 0: результат равен nil (нулевые подстроки)
n < 0: все подстроки

Крайние случаи для s и sep (например, пустые строки) обрабатываются, как для Split.

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

package main

import (
    "fmt"
    "strings"
)

func main() {
    fmt.Printf("%q\n", strings.SplitN("a,b,c", ",", 2))
    z := strings.SplitN("a,b,c", ",", 0)
    fmt.Printf("%q (nil = %v)\n", z, z == nil)
}

Вывод:

["a" "b,c"]
[] (nil = true)


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


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

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