Функция bytes.Split

Функция bytes.Split разделяет исходную строку на подстроки по заданному разделителю и возвращает слайс срезов байтов ([][]byte). Первым параметром функция принимает строку в виде среза байтов ([]byte), вторым - разделитель в виде среза байтов ([]byte). Если разделитель не найден, функция возвращает слайс с одним элементом - исходной строкой. Если разделитель пустой, функция разбивает строку по каждому символу.

Синтаксис

gobytes.Split(s, sep)

Пример

Давайте разделим строку "abcde" по разделителю "bc":

gopackage main

import (
  "bytes"
  "fmt"
)

func main() {
  s := []byte("abcde")
  sep := []byte("bc")
  res := bytes.Split(s, sep)
  fmt.Println(res)
}

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

go["a" "de"]

Пример

Давайте разделим строку "abcde" по разделителю "xyz", которого нет в строке:

gopackage main

import (
  "bytes"
  "fmt"
)

func main() {
  s := []byte("abcde")
  sep := []byte("xyz")
  res := bytes.Split(s, sep)
  fmt.Println(res)
}

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

go["abcde"]

Пример

Давайте разделим строку "abcde" с пустым разделителем для получения слайса отдельных символов:

gopackage main

import (
  "bytes"
  "fmt"
)

func main() {
  s := []byte("abcde")
  sep := []byte("")
  res := bytes.Split(s, sep)
  fmt.Println(res)
}

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

go["a" "b" "c" "d" "e"]

Пример

Давайте разделим строку "1,2,3,4,5" по разделителю ",":

gopackage main

import (
  "bytes"
  "fmt"
)

func main() {
  s := []byte("1,2,3,4,5")
  sep := []byte(",")
  res := bytes.Split(s, sep)
  fmt.Println(res)
}

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

go["1" "2" "3" "4" "5"]

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

  • функцию bytes.SplitN,
    которая разделяет строку на ограниченное количество частей
  • функцию bytes.SplitAfter,
    которая разделяет строку, но сохраняет разделитель в каждой части
  • функцию strings.Split,
    которая выполняет аналогичное разделение для строк (string)
  • функцию bytes.Join,
    которая объединяет слайс байтовых срезов в одну строку