cpp

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

Выполнить поиск фрагментов внутри строки позволяют следующие функции из пакета strings:

  • Index() — возвращает позицию первого вхождения фрагмента substr в строку s. Если фрагмент не найден, то возвращается значение -1. Формат функции:
strings.Index(s string, substr string) int

Пример:

s := "0 1 2 1 0"
fmt.Println(strings.Index(s, "1")) // 2
fmt.Println(strings.Index(s, "3")) // -1
  • IndexByte() — возвращает позицию первого вхождения байта c в строку s. Если ничего не найдено, то возвращается значение -1. Формат функции:
strings.IndexByte(s string, c byte) int

Пример:

s := "0 1 2 1 0"
fmt.Println(strings.IndexByte(s, '1')) // 2
fmt.Println(strings.IndexByte(s, '3')) // -1
  • IndexRune() — возвращает позицию первого вхождения символа r в строку s. Если ничего не найдено, то возвращается значение -1. Формат функции:
strings.IndexRune(s string, r rune) int

Пример:

s := "0 1 2 1 0"
fmt.Println(strings.IndexRune(s, '1')) // 2
fmt.Println(strings.IndexRune(s, '3')) // -1
  • IndexFunc() — возвращает позицию первого вхождения символа, для которого функция f вернула значение true, в строку s. Если ничего не найдено, то возвращается значение -1. Формат функции:
strings.IndexFunc(s string, f func(rune) bool) int

Пример:

s := "0 1 2 1 0"
fmt.Println(strings.IndexFunc(s, func(r rune) bool {
   return r == '1'
})) // 2
fmt.Println(strings.IndexFunc(s, func(r rune) bool {
   return r == '3'
})) // -1
  • IndexAny() — возвращает позицию первого вхождения одного из символов строки chars в строку s. Если ничего не найдено, то возвращается значение -1. Формат функции:
strings.IndexAny(s string, chars string) int

Пример:

s := "0 1 2 1 0"
fmt.Println(strings.IndexAny(s, "341")) // 2
fmt.Println(strings.IndexAny(s, "345")) // -1
  • LastIndex() — возвращает позицию последнего вхождения фрагмента substr в строку s. Если фрагмент не найден, то возвращается значение -1. Формат функции:
strings.LastIndex(s string, substr string) int

Пример:

s := "0 1 2 1 0"
fmt.Println(strings.LastIndex(s, "1")) // 6
fmt.Println(strings.LastIndex(s, "3")) // -1
  • LastIndexByte() — возвращает позицию последнего вхождения байта c в строку s. Если ничего не найдено, то возвращается значение -1. Формат функции:
strings.LastIndexByte(s string, c byte) int

Пример:

s := "0 1 2 1 0"
fmt.Println(strings.LastIndexByte(s, '1')) // 6
fmt.Println(strings.LastIndexByte(s, '3')) // -1
  • LastIndexFunc() — возвращает позицию последнего вхождения символа, для которого функция f вернула значение true, в строку s. Если ничего не найдено, то возвращается значение -1. Формат функции:
strings.LastIndexFunc(s string, f func(rune) bool) int

Пример:

s := "0 1 2 1 0"
fmt.Println(strings.LastIndexFunc(s, func(r rune) bool {
   return r == '1'
})) // 6
fmt.Println(strings.LastIndexFunc(s, func(r rune) bool {
   return r == '3'
})) // -1
  • LastIndexAny() — возвращает позицию последнего вхождения одного из символов строки chars в строку s. Если ничего не найдено, то возвращается значение -1. Формат функции:
strings.LastIndexAny(s string, chars string) int

Пример:

s := "0 1 2 1 0"
fmt.Println(strings.LastIndexAny(s, "341")) // 6
fmt.Println(strings.LastIndexAny(s, "345")) // -1
  • Count() — возвращает число вхождений фрагмента substr в строку s. Если фрагмент в строку не входит, то возвращается значение 0. Формат функции:
strings.Count(s string, substr string) int

Пример:

s := "0 1 2 1 0"
fmt.Println(strings.Count(s, "1")) // 2
fmt.Println(strings.Count(s, "3")) // 0
  • Contains() — возвращает значение true, если фрагмент substr входит в строку s, и false — в противном случае. Формат функции:
strings.Contains(s string, substr string) bool

Пример:

s := "0 1 2 1 0"
fmt.Println(strings.Contains(s, "1")) // true
fmt.Println(strings.Contains(s, "3")) // false
  • ContainsRune() — возвращает значение true, если символ r входит в строку s, и false — в противном случае. Формат функции:
strings.ContainsRune(s string, r rune) bool

Пример:

s := "0 1 2 1 0"
fmt.Println(strings.ContainsRune(s, '1')) // true
fmt.Println(strings.ContainsRune(s, '3')) // false
  • ContainsAny() — возвращает значение true, если один из символов строки chars входит в строку s, и false — в противном случае. Формат функции:
strings.ContainsAny(s string, chars string) bool

Пример:

s := "0 1 2 1 0"
fmt.Println(strings.ContainsAny(s, "341")) // true
fmt.Println(strings.ContainsAny(s, "345")) // false
  • HasPrefix() — возвращает значение true, если строка s начинается с фрагмента prefix, и false — в противном случае. Формат функции:
strings.HasPrefix(s string, prefix string) bool

Пример:

s := "abcd"
fmt.Println(strings.HasPrefix(s, "ab")) // true
fmt.Println(strings.HasPrefix(s, "cd")) // false
  • HasSuffix() — возвращает значение true, если строка s заканчивается фрагментом suffix, и false — в противном случае. Формат функции:
strings.HasSuffix(s string, suffix string) bool

Пример:

s := "abcd"
fmt.Println(strings.HasSuffix(s, "ab")) // false
fmt.Println(strings.HasSuffix(s, "cd")) // true

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

Реквизиты

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

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

cpp