Функция strings.SplitN

Функция strings.SplitN разделяет исходную строку на части, используя указанный разделитель. Первым параметром функция принимает строку для разделения, вторым - разделитель, третьим - максимальное количество частей, которое требуется получить. Функция возвращает слайс строк []string. Если разделитель не найден, возвращается слайс с одной исходной строкой. Если параметр n меньше или равен нулю, возвращаются все возможные подстроки.

Синтаксис

gostrings.SplitN(s, sep, n)

Пример

Давайте разделим строку "a,b,c,d,e" по запятой на три части:

gopackage main

import (
  "fmt"
  "strings"
)

func main() {
  res := strings.SplitN("a,b,c,d,e", ",", 3)
  fmt.Println(res)
}

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

go[a b c,d,e]

Пример

Разделим строку по разделителю "-" на четыре части. Обратите внимание, что итоговое количество частей не превышает указанное значение:

gopackage main

import (
  "fmt"
  "strings"
)

func main() {
  res := strings.SplitN("1-2-3-4-5", "-", 4)
  fmt.Println(res)
}

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

go[1 2 3 4-5]

Пример

Если параметр n равен нулю, функция вернет пустой слайс. Давайте проверим это поведение на строке с разделителями:

gopackage main

import (
  "fmt"
  "strings"
)

func main() {
  res := strings.SplitN("x,y,z", ",", 0)
  fmt.Println(res)
}

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

go[]

Пример

Если разделитель не встречается в строке, результатом будет слайс из одного элемента, содержащего исходную строку. Рассмотрим пример:

gopackage main

import (
  "fmt"
  "strings"
)

func main() {
  res := strings.SplitN("hello world", "|", 2)
  fmt.Println(res)
}

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

go[hello world]

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

  • функцию strings.Split,
    которая разделяет строку на все подстроки по разделителю
  • функцию strings.SplitAfter,
    которая разделяет строку, сохраняя разделитель в каждой части
  • функцию strings.SplitAfterN,
    которая разделяет строку на N частей с сохранением разделителя
  • функцию strings.Join,
    которая объединяет слайс строк в одну строку через разделитель