Функция strings.TrimFunc

Функция strings.TrimFunc удаляет символы из строки слева и справа, которые удовлетворяют условию, заданному в передаваемой функции. Первым параметром функция принимает строку для обработки, вторым параметром — функцию-предикат func(rune) bool, которая определяет, какие символы необходимо удалить. Функция возвращает новую строку без удаленных символов.

Удаление происходит до тех пор, пока с обеих сторон строки встречаются символы, для которых переданная функция возвращает true. Как только встречается символ, для которого функция возвращает false, обрезание с соответствующей стороны прекращается.

Синтаксис

gostrings.TrimFunc(str, func(r rune) bool)

Пример

Давайте удалим из строки все символы, которые являются цифрами:

gopackage main

import (
  "fmt"
  "strings"
  "unicode"
)

func main() {
  str := "123abc456"
  res := strings.TrimFunc(str, func(r rune) bool {
    return unicode.IsDigit(r)
  })
  fmt.Println(res)
}

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

go"abc"

Пример

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

gopackage main

import (
  "fmt"
  "strings"
  "unicode"
)

func main() {
  str := "   hello world   "
  res := strings.TrimFunc(str, func(r rune) bool {
    return unicode.IsSpace(r)
  })
  fmt.Println(res)
}

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

go"hello world"

Пример

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

gopackage main

import (
  "fmt"
  "strings"
  "unicode"
)

func main() {
  str := "!@#abc123!@#"
  res := strings.TrimFunc(str, func(r rune) bool {
    return !unicode.IsLetter(r)
  })
  fmt.Println(res)
}

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

go"abc123"

Пример

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

gopackage main

import (
  "fmt"
  "strings"
  "unicode"
)

func main() {
  str := ".,;abc.;,"
  res := strings.TrimFunc(str, func(r rune) bool {
    return unicode.IsPunct(r)
  })
  fmt.Println(res)
}

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

go"abc"

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

  • функцию strings.TrimLeftFunc,
    которая удаляет символы только с начала строки по условию
  • функцию strings.TrimRightFunc,
    которая удаляет символы только с конца строки по условию
  • функцию strings.Trim,
    которая удаляет указанные символы с обеих сторон строки
  • функцию strings.TrimSpace,
    которая удаляет пробелы с обеих сторон строки