Функция bytes.Split
Функция bytes.Split разделяет исходную строку на подстроки
по заданному разделителю и возвращает слайс срезов байтов
([][]byte). Первым параметром функция принимает строку
в виде среза байтов ([]byte), вторым - разделитель
в виде среза байтов ([]byte). Если разделитель не найден,
функция возвращает слайс с одним элементом - исходной строкой.
Если разделитель пустой, функция разбивает строку по каждому символу.
Синтаксис
bytes.Split(s, sep)
Пример
Давайте разделим строку "abcde" по разделителю
"bc":
package main
import (
"bytes"
"fmt"
)
func main() {
s := []byte("abcde")
sep := []byte("bc")
res := bytes.Split(s, sep)
fmt.Println(res)
}
Результат выполнения кода:
["a" "de"]
Пример
Давайте разделим строку "abcde" по разделителю
"xyz", которого нет в строке:
package main
import (
"bytes"
"fmt"
)
func main() {
s := []byte("abcde")
sep := []byte("xyz")
res := bytes.Split(s, sep)
fmt.Println(res)
}
Результат выполнения кода:
["abcde"]
Пример
Давайте разделим строку "abcde" с пустым разделителем
для получения слайса отдельных символов:
package main
import (
"bytes"
"fmt"
)
func main() {
s := []byte("abcde")
sep := []byte("")
res := bytes.Split(s, sep)
fmt.Println(res)
}
Результат выполнения кода:
["a" "b" "c" "d" "e"]
Пример
Давайте разделим строку "1,2,3,4,5" по разделителю
",":
package main
import (
"bytes"
"fmt"
)
func main() {
s := []byte("1,2,3,4,5")
sep := []byte(",")
res := bytes.Split(s, sep)
fmt.Println(res)
}
Результат выполнения кода:
["1" "2" "3" "4" "5"]
Смотрите также
-
функцию
bytes.SplitN,
которая разделяет строку на ограниченное количество частей -
функцию
bytes.SplitAfter,
которая разделяет строку, но сохраняет разделитель в каждой части -
функцию
strings.Split,
которая выполняет аналогичное разделение для строк (string) -
функцию
bytes.Join,
которая объединяет слайс байтовых срезов в одну строку