Функция strings.NewReplacer

Функция strings.NewReplacer создает новый объект Replacer, который заменяет заданные подстроки на указанные замены. Она принимает нечетное количество аргументов в виде пар "старая подстрока - новая подстрока". Первый аргумент - искомая подстрока, второй - строка для замены, третий - следующая искомая подстрока, четвертый - следующая строка для замены и так далее.

Синтаксис

gostrings.NewReplacer(old1, new1, old2, new2, ...)

Пример

Давайте создадим заменятель, который заменяет подстроку "abc" на "123" и подстроку "def" на "456" в строке "abc def ghi":

gopackage main

import (
  "fmt"
  "strings"
)

func main() {
  replacer := strings.NewReplacer("abc", "123", "def", "456")
  res := replacer.Replace("abc def ghi")
  fmt.Println(res)
}

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

go"123 456 ghi"

Пример

Давайте заменим несколько подстрок в строке "one two three four", используя заменятель:

gopackage main

import (
  "fmt"
  "strings"
)

func main() {
  replacer := strings.NewReplacer("one", "1", "two", "2", "three", "3")
  res := replacer.Replace("one two three four")
  fmt.Println(res)
}

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

go"1 2 3 four"

Пример

Давайте используем метод Replacer.WriteString для записи результата замены в io.Writer:

gopackage main

import (
  "fmt"
  "strings"
)

func main() {
  replacer := strings.NewReplacer("a", "x", "b", "y", "c", "z")
  var builder strings.Builder
  replacer.WriteString(&builder, "abcde")
  fmt.Println(builder.String())
}

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

go"xyzde"

Пример

Давайте используем метод Replacer.ReplaceAll для замены всех вхождений подстрок в строке:

gopackage main

import (
  "fmt"
  "strings"
)

func main() {
  replacer := strings.NewReplacer("go", "Golang", "is", "are")
  res := replacer.Replace("go is awesome, go is fast")
  fmt.Println(res)
}

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

go"Golang are awesome, Golang are fast"

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

  • функцию strings.Replace,
    которая заменяет ограниченное количество вхождений подстроки
  • функцию strings.ReplaceAll,
    которая заменяет все вхождения подстроки
  • функцию strings.Split,
    которая разбивает строку по разделителю
  • функцию strings.Join,
    которая объединяет элементы слайса в строку