На этом шаге рассмотрим функции пакета strings для работы со строками в Go.
В таблице 1 рассмотрим функции пакета strings. Будем использовать следующие переменные: s и t - тип string, xs – тип []string, i – тип int, и f – ссылка на функцию с сигнатурой func(rune) bool. Индексы соответствуют первым байтам в кодировке UTF-8 для кодовых пунктов Юникода (символов) или строк, или имеют значение -1 в случае отсутствия соответствия. Переменная r имеет тип unicode.SpecialCase и используются для определения дополнительных правил Юникода.
Функция | Описание/результат |
---|---|
strings.Contains(s, t) | true, если подстрока t входит в строку s |
strings.Count(s, t) | Количество (неперекрывающихся) вхождений подстроки t в строку s |
strings.EqualFold(s, t) | true, если строки равны, без учета регистра символов |
strings.Fields(s) | Срез []string, содержащий результаты разбиения строки s по пробельным символам |
strings.FieldsFunc(s,f) | Срез []string, содержащий результаты разбиения строки s по позициям, для которых функция f вернет true |
strings.HasPrefix(s, t) | true, если строка s начинается со строки t |
strings.HasSuffix(s, t) | true, если строка s заканчивается строкой t |
strings.Index(s, t) | Индекс первого вхождения подстроки t в строке s |
strings.IndexAny(s, t) | Индекс первого вхождения любого символа из строки t в строке s |
strings.IndexFunc(s, f) | Индекс первого вхождения символа в строке s, для которого функция f вернет true |
strings.IndexRune(s, char) | Индекс первого вхождения символа char, представленного значением типа rune, в строке s |
strings.Join(xs, t) | Строка, являющаяся результатом конкатенации всех строк в xs, разделенных строкой t (которая может быть пустой строкой) |
strings.LastIndex(s, t) | Индекс последнего вхождения подстроки t в строке s |
strings.LastIndexAny(s, t) | Индекс последнего вхождения любого символа из строки t в строке s |
strings. LastIndexFunc(s, f) | Индекс последнего вхождения символа в строке s, для которого функция f вернет true |
strings.Map(mf, t) | Копия строки t, в которой каждый символ замещается или удаляется в соответствии с функцией отображения mf, имеющей сигнатуру func(rune) rune |
strings.NewReader(s) | Указатель на значение с методами Read(), ReadByte() и ReadRune() для выполнения операций со строкой s |
strings.NewReplacer(...) | Указатель на значение с методами для замены каждой указанной пары строк старая/новая |
strings.Repeat(s, i) | Строка, в которой строка s повторяется i раз |
strings.Replace(s, old, new, i) | Копия строки s, где все неперекрывающиеся вхождения строки old замещены строкой new, если в аргументе i передано значение –1. В противном случае выполняется не более i замен |
strings.Split(s, t) | Срез []string, являющийся результатом разбиения строки s по вхождениям строки t |
strings.SplitAfter(s, t) | Действует подобно функции strings.Split(), но сохраняет строку-разделитель в полученных строках |
strings.SplitAfterN(s, t, i) | Действует подобно функции strings.SplitN(), но сохраняет строку-разделитель в полученных строках |
strings.SplitN(s, t, i) | Срез []string, являющийся результатом разбиения строки s по вхождениям строки t, но не более i-1 раз |
strings.Title(s) | Копия строки s, где первые буквы в каждом слове преобразованы в верхний регистр |
strings.ToLower(s) | Копия строки s, где все символы преобразованы в нижний регистр |
strings.ToLowerSpecial(r, s) | Копия строки s, где все символы преобразованы в нижний регистр, при этом предпочтение отдается правилам в r |
strings.ToTitle(s) | Копия строки s, где первые символы слов преобразованы в верхний регистр |
strings. ToTitleSpecial(r, s) | Копия строки s, где первые символы слов преобразованы в верхний регистр, при этом предпочтение отдается правилам в r |
strings.ToUpper(s) | Копия строки s, где все символы преобразованы в верхний регистр |
strings.ToUpperSpecial(r, s) | Копия строки s, где все символы преобразованы в верхний регистр, при этом предпочтение отдается правилам в r |
strings.Trim(s, t) | Копия строки s, где с обоих концов удалены символы, входящие в строку t |
strings.TrimFunc(s, f) | Копия строки s, где с обоих концов удалены символы, для которых функция f вернула true |
strings.TrimLeft(s, t) | Копия строки s, в начале которой удалены символы, входящие в строку t |
strings.TrimLeftFunc(s, f) | Копия строки s, где в начале удалены символы, для которых функция f вернула true |
strings.TrimRight(s, t) | Копия строки s, где в конце удалены символы, входящие в строку t |
strings.TrimRightFunc(s, f) | Копия строки s, где в конце удалены символы, для которых функция f вернула true |
strings.TrimSpace(s) | Копия строки s, где с обоих концов удалены пробельные символы |
На следующем шаге рассмотрим некоторые примеры, иллюстрирующие использование функций пакета strings.