cpp

Строки. Замена фрагментов

Выполнить замену фрагментов внутри строки позволяют следующие функции из пакета 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

Учебник Go (Golang)
Учебник Go (Golang) в формате PDF

Помощь сайту

ЮMoney (Yandex-деньги): 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов

cpp