Функция strings.NewReplacer
Функция strings.NewReplacer создает новый объект Replacer,
который заменяет заданные подстроки на указанные замены. Она принимает
нечетное количество аргументов в виде пар "старая подстрока - новая подстрока".
Первый аргумент - искомая подстрока, второй - строка для замены, третий - следующая искомая подстрока,
четвертый - следующая строка для замены и так далее.
Синтаксис
strings.NewReplacer(old1, new1, old2, new2, ...)
Пример
Давайте создадим заменятель, который заменяет подстроку "abc" на "123" и подстроку "def" на "456" в строке "abc def ghi":
package main
import (
"fmt"
"strings"
)
func main() {
replacer := strings.NewReplacer("abc", "123", "def", "456")
res := replacer.Replace("abc def ghi")
fmt.Println(res)
}
Результат выполнения кода:
"123 456 ghi"
Пример
Давайте заменим несколько подстрок в строке "one two three four", используя заменятель:
package 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)
}
Результат выполнения кода:
"1 2 3 four"
Пример
Давайте используем метод Replacer.WriteString для записи результата замены в io.Writer:
package 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())
}
Результат выполнения кода:
"xyzde"
Пример
Давайте используем метод Replacer.ReplaceAll для замены всех вхождений подстрок в строке:
package 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)
}
Результат выполнения кода:
"Golang are awesome, Golang are fast"
Смотрите также
-
функцию
strings.Replace,
которая заменяет ограниченное количество вхождений подстроки -
функцию
strings.ReplaceAll,
которая заменяет все вхождения подстроки -
функцию
strings.Split,
которая разбивает строку по разделителю -
функцию
strings.Join,
которая объединяет элементы слайса в строку