cpp

Получение фрагмента строки

Строки поддерживают операцию извлечения среза, которая возвращает указанный фрагмент в виде строки. Формат операции:

<Фрагмент> = <Строка>[<Начало>:<Конец>]

Параметры <Начало> и <Конец> являются необязательными. Если параметр <Начало> не указан, то используется значение 0. Если параметр <Конец> не указан, то возвращается фрагмент до конца строки. Следует также заметить, что элемент с индексом, указанном в этом параметре, не входит в возвращаемый фрагмент.

Теперь рассмотрим несколько примеров. Сначала получим все элементы:

s1 := "test тест"
s2 := s1[:]
fmt.Println(s2)        // test тест
fmt.Printf("%T\n", s2) // string

Получим фрагменты без первого и последнего элементов исходной строки:

s1 := "123456"
s2 := s1[1:]           // Без первого элемента
fmt.Println(s2)        // 23456
s3 := s1[:len(s1) - 1] // Без последнего элемента
fmt.Println(s3)        // 12345

Получим первые два элемента:

s1 := "123456"
s2 := s1[0:2]          // Байт с индексом 2 не входит в диапазон
fmt.Println(s2)        // 12

А теперь получим последний элемент:

s1 := "123456"
s2 := s1[len(s1) - 1:] // Последний элемент
fmt.Println(s2)        // 6

И, наконец, выведем фрагмент от второго элемента до четвертого включительно:

s1 := "123456"
s2 := s1[1:4]          // Возвращаются элементы с индексами 1, 2 и 3
fmt.Println(s2)        // 234

Обратите внимание: индексы задают позицию в байтах, а не символах. Поэтому можно получить фрагмент символа, так как один русский символ кодируется двумя байтами:

s1 := "тест"
s2 := s1[0:1]          // Возвращается байт с индексом 0
fmt.Printf("%q\n", s2) // "\xd1"
s3 := s1[0:2]          // Возвращается первый символ
fmt.Printf("%s\n", s3) // т

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

Помощь сайту

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

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

cpp