Этот сайт использует cookies. Продолжение работы с сайтом означает, что Вы согласны!
Строки. Замена фрагментов
Выполнить замену фрагментов внутри строки позволяют следующие функции из пакета strings
:
Replace()
— выполняет замену фрагментаold
фрагментомnew
в строкеs
и возвращает новую строку. Формат функции:
strings.Replace(s string, old string, new string, n int) string
Максимальное число замен задается с помощью параметра n
. Если параметр имеет отрицательное значение, то ограничения нет. Пример:
s := "Привет, Петя"
s2 := strings.Replace(s, "Петя", "Вася", 1)
fmt.Println(s2) // Привет, Вася
s = "1 1 1 1 1"
s2 = strings.Replace(s, "1", "2", 3)
fmt.Println(s2) // 2 2 2 1 1
s2 = strings.Replace(s, "1", "2", -1)
fmt.Println(s2) // 2 2 2 2 2
ReplaceAll()
— выполняет замену всех фрагментовold
фрагментомnew
в строкеs
и возвращает новую строку. Формат функции:
strings.ReplaceAll(s string, old string, new string) string
Пример:
s := "Привет, Петя"
s2 := strings.ReplaceAll(s, "Петя", "Вася")
fmt.Println(s2) // Привет, Вася
s = "1 1 1 1 1"
s2 = strings.ReplaceAll(s, "1", "2")
fmt.Println(s2) // 2 2 2 2 2
Map()
— выполняет замену всех символов в строкеs
в соответствии с функциейmapping
и возвращает новую строку. Если функцияmapping
возвращает отрицательное значение, то символ не добавляется в новую строку. Формат функции:
strings.Map(mapping func(rune) rune, s string) string
Пример:
s := "12332103"
s2 := strings.Map(func(r rune) rune {
if r == '2' {
return '_' // Заменяем символ
} else if r == '0' {
return -1 // Удаляем символ
}
return r // Оставляем символ без изменений
}, s)
fmt.Println(s2) // 1_33_13
Функция Expand()
из пакета os
позволяет заменить все вхождения вида ${NAME}
или $NAME
в строке, на значения, возвращаемые функцией обратного вызова. Формат функции:
os.Expand(s string, mapping func(string) string) string
Пример:
fmt.Println(os.Expand("${NAME} $AGE", func(s string) string {
switch s {
case "NAME":
return "Вася"
case "AGE":
return "25"
}
return ""
})) // Вася 25
Помощь сайту
ЮMoney (Yandex-деньги): 410011140483022
ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов