РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
136 of 1593 menu

Функция strings.FieldsFunc

Функция strings.FieldsFunc разбивает строку на части (поля), используя пользовательскую функцию для определения символов-разделителей. В первый параметр мы передаем исходную строку для разбиения, во второй параметр мы передаем функцию, которая принимает руну и возвращает true, если этот символ должен считаться разделителем. Функция возвращает срез строк ([]string), содержащий полученные поля. Важно: последовательные разделители игнорируются, а пустые поля не включаются в результат.

Синтаксис

strings.FieldsFunc(str string, f func(rune) bool) []string

Пример

Давайте разобьем строку "abcde" по символам 'b' и 'd':

package main import ( "fmt" "strings" ) func main() { isSeparator := func(r rune) bool { return r == 'b' || r == 'd' } res := strings.FieldsFunc("abcde", isSeparator) fmt.Println(res) }

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

[a c e]

Пример

Давайте разобьем строку по нескольким символам-разделителям одновременно:

package main import ( "fmt" "strings" ) func main() { isSeparator := func(r rune) bool { return r == ' ' || r == ',' || r == ';' } res := strings.FieldsFunc("a,b c;d e,f", isSeparator) fmt.Println(res) }

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

[a b c d e f]

Пример

Давайте разобьем строку по цифрам, используя функцию unicode.IsDigit:

package main import ( "fmt" "strings" "unicode" ) func main() { isDigit := func(r rune) bool { return unicode.IsDigit(r) } res := strings.FieldsFunc("ab12cd34ef", isDigit) fmt.Println(res) }

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

[ab cd ef]

Пример

Давайте разобьем строку по символам, не являющимся буквами:

package main import ( "fmt" "strings" "unicode" ) func main() { isNotLetter := func(r rune) bool { return !unicode.IsLetter(r) } res := strings.FieldsFunc("hello,world!123", isNotLetter) fmt.Println(res) }

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

[hello world]

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

  • функцию strings.Fields,
    которая разбивает строку по пробельным символам
  • функцию strings.Split,
    которая разбивает строку по указанной подстроке
  • функцию strings.IndexFunc,
    которая ищет позицию первого символа, удовлетворяющего условию
  • функцию strings.TrimFunc,
    которая удаляет символы с обоих концов строки по условию
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить