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