Строка
Стд::Строка Базовые типы: Объект, Представляемое, Сравнимое |
Иерархия типа
Последовательность символов. Индексация символов с 0.
Сравнение структурное.
Обход в цикле:
Возвращает символы строки в порядке следования индексов.
Литералы
Синтаксис: "\<Содержимое строки\>"
Где:
- <Содержимое строки> - последовательность Юникод-символов и экранируемых символов
- Экранируемые символы
- \н - новая строка (перевод строки)
- \в - возврат каретки
- \т - табуляция
- \\ - обратная косая черта (\)
- " - кавычка (“)
- \% - процент (%)
- $ - доллар ($)
- \юXXXXX - символ Юникода с номером XXXXX (десятичный)
Многострочный литерал Синтаксис как у обычной строки, но открывающая и закрывающая кавычки могут находиться на разных строках.
- Отступы (пробельные символы в начале каждой линии) не сохраняются, отступ считается по первому символу строки, следующему за открывающей кавычкой (далее - граница).
- Запрещено использовать любые пробельные символы, кроме непосредственно пробелов, на всех строках, кроме первой, до границы.
- Пробельные символы после последнего непробельного символа на каждой линии удаляются (кроме последней).
- Многострочный литерал должен начинаться на отдельной строке (не должен быть предварен иными конструкциями)
- Отступ линии может быть меньше границы.
- Отступ линии больше границы приведет к пробельным символам в начале линии.
- Разделитель строк - всегда ‘\n’
- Допустимо использовать экранируемые символы, в том числе переносы строк.
Интерполяция Интерполяцией строк называют включение в строковой литерал вычисляемых выражений, попадающих в содержимое литерала.
Синтаксис
- Использующий ВСтроку для преобразования
- Краткий: %ИмяПеременной Именем переменной считается последовательность символов, образующих идентификатор, т.е. %Переменная.Поле == %{Переменная}.Поле
- Полный: %{Выражение}
- Использующий Представление для преобразования
- Краткий: $ИмяПеременной
- Полный: ${Выражение}
- Использующий Представление для форматирования: ${Выражение|Формат}
- Последовательности %x и $x, где x- символ, с которого не может начинаться идентификатор, кроме ‘{‘, не считаются вставками интерполяции
- Неопределено в обоих случаях преобразуется в пустую строку
Арифметические операции
- Строка + Объект? = Строка (конкатенация) Конкатенация использует ВСтроку для преобразования значений в строку. При конкатенации Неопределено преобразуется в
"undefined"
Операция []
Только чтение |
Возвращает символ (строка длины 1), по указанному индексу в исходной строке.
Конструкторы
Строка
Строка(Байты: Байты)
Создает объект на основании переданных байтов Байты
.
Методы
ВБайты
Возвращает представление строки в виде последовательности байтов с учетом кодировки. По умолчанию используется кодировка UTF-8
.
На клиенте поддерживается только Кодировка
UTF-8.
ВВерхнийРегистр
ВВерхнийРегистр(): Строка
Возвращает копию строки, со символами в верхнем регистре.
ВНижнийРегистр
ВНижнийРегистр(): Строка
Возвращает копию строки, со символами в нижнем регистре.
ВСтроку
ВСтроку(): Строка
Переопределение: ВСтроку |
Возвращает текущий экземпляр строки.
Вставить
Возвращает новую строку, полученную путем вставки подстроки Строка
начиная с индекса Индекс
в текущую.
Длина
Длина(): Число
Возвращает длину строки (количество символов).
ДополнитьСКонца
Дополняет исходную строку до Длина
символов, путем добавления символов Символ
в конец строки.
ДополнитьСНачала
Дополняет исходную строку до Длина
символов, путем добавления символов Символ
в начало строки.
ЗаканчиваетсяНа
Проверяет, заканчивается ли исходная строка на подстроку Строка
. ИгнорироватьРегистр
- указывает выполняется ли сравнение с учетом или без учета регистра.
Заменить
Перегрузка: Заменить(Строка: Строка, Замена: Строка, ТолькоПервое: Булево = Ложь): Строка Заменить(Образец: Образец, Заменитель: (Совпадение)->Строка, КоличествоЗамен: Число = 0): Строка |
Заменяет первые КоличествоЗамен
подстрок, удовлетворяющих регулярному выражению Образец
, на строку Замена
.
Если значение КоличествоЗамен
равно 0, то выполняются все возможные замены. Иначе выполняется ровно КоличествоЗамен
замен.
В случае, если значение, переданное в КоличествоЗамен
< 0, выбрасывается исключение ИсключениеНедопустимыйАргумент.
В строке Замена
могут содержаться ссылки на “группы захвата”, обозначенные в Образец
. Каждая ссылка вида $<Имя>
или $g
будут заменены на последнее совпадение (подстроку), найденное группой захвата с таким именем или номером. В $g
как номер группы всегда воспринимаются все идущие подряд после $
цифры. Если дальнейшие цифры формируют число, которое не является корректным номером группы, то выбрасывается исключение ИсключениеНекорректноеРегулярноеВыражение. Для четкого обозначения номера ссылки можно брать ее в фигурные скобки. Например: ${12} - ссылка на 12 группу захвата.
Также в случае использования некорректной строки-замены Замена
выбрасывается исключение ИсключениеНекорректноеРегулярноеВыражение.
Возвращает результирующую строку.
Примеры
Пусть есть строка:
знч ТестоваяСтрока = "один: 1, два: 2, три: 3, четыре: 4, пять: 5, шесть: 6, семь: 7, восемь: 8, девять: 9, десять: 10"
Нужно заменить все соответствия вида “: " на "".число>число>название>
Составим образец с двумя именованными группами захвата, первая из которых будет отвечать за поиск “", вторая за "".число>название>
знч ОбразецДляПоиска = '(?<название_числа>\с+): (?<число>\ц+)'
Теперь применим метод Заменить
с использованием строки-замены к исходной строке:
знч Результат = ТестоваяСтрока.Заменить(ОбразецДляПоиска, "\$<число>") // \$<число> - обратная ссылка на именованную группу захвата <число>
// В Результат будет храниться значение "1, 2, 3, 4, 5, 6, 7, 8, 9, 10"
Заменить
Заменить(
Образец: Образец,
Заменитель: (Совпадение)->Строка,
КоличествоЗамен: Число = 0
): Строка
Перегрузка: Заменить(Строка: Строка, Замена: Строка, ТолькоПервое: Булево = Ложь): Строка Заменить(Образец: Образец, Замена: Строка, КоличествоЗамен: Число = 0): Строка |
Заменяет первые КоличествоЗамен
подстрок, удовлетворяющих регулярному выражению Образец
, на строку, полученную в результате выполнения метода Заменитель
.
Если значение КоличествоЗамен
равно 0, то выполняются все возможные замены. Иначе выполняется ровно КоличествоЗамен
замен.
В случае, если значение, переданное в КоличествоЗамен
< 0, выбрасывается исключение ИсключениеНедопустимыйАргумент.
Примеры
Пусть есть строка:
знч ТестоваяСтрока = "один: 1, два: 2, три: 3, четыре: 4, пять: 5, шесть: 6, семь: 7, восемь: 8, девять: 9, десять: 10"
Нужно заменить все соответствия вида “: " на "".число>число>название>
Составим образец с двумя именованными группами захвата, первая из которых будет отвечать за поиск “", вторая за "".число>название>
знч ОбразецДляПоиска = '(?<название_числа>\с+): (?<число>\ц+)'
Теперь применим метод Заменить
с использованием переменной функционального типа к исходной строке:
знч ЗаменительСвязкиНаЧисло = (ОчередноеСовпадение: Совпадение) -> ОчередноеСовпадение.Группа("число") как Строка
знч Результат = ТестоваяСтрока.Заменить(ОбразецДляПоиска, ЗаменительСвязкиНаЧисло)
// В Результат будет храниться значение "1, 2, 3, 4, 5, 6, 7, 8, 9, 10"
Заменить
Перегрузка: Заменить(Образец: Образец, Замена: Строка, КоличествоЗамен: Число = 0): Строка Заменить(Образец: Образец, Заменитель: (Совпадение)->Строка, КоличествоЗамен: Число = 0): Строка |
Заменяет подстроку Строка
на Замена
в исходной строке. ТолькоПервое
- признак замены только первого вхождения подстроки (иначе удаляются все). Возвращает результирующую строку.
ЗаменитьДиапазон
Заменяет диапазон символов с индекса От
до До
, не включая верхний индекс, на Замена
. Значением по умолчанию конечного индекса До
является длина строки. Возвращает результирующую строку.
Найти
Возвращает индекс начала первого вхождения подстроки Строка
в диапазоне от От
до До
исходной строки, не включая верхний индекс. Значением по умолчанию конечного индекса До
является длина строки. Если вхождений нет, возвращает -1
.
НайтиСКонца
Возвращает индекс начала последнего вхождения подстроки Строка
в диапазоне от От
до До
исходной строки, не включая верхний индекс. Значением по умолчанию конечного индекса До
является длина строки. Если вхождений нет, возвращает -1
.
НачинаетсяС
Проверяет, начинается ли исходная строка на подстроку Строка
. ИгнорироватьРегистр
- указывает выполняется ли сравнение с учетом или без учета регистра.
Подстрока
Возвращает подстроку из символов в диапазоне от От
до До
, не включая верхний индекс. Значением по умолчанию конечного индекса До
является длина строки.
ПодстрокаСКонца
Возвращает указанное количество символов Длина
с конца строки.
ПодстрокаСНачала
Возвращает указанное количество символов Длина
с начала строки.
ПолноеСовпадение
Проверяет, подходит ли исходная строка под образец Образец
.
Примеры
пер ОбразецПолноеСовпадение = 'Б(е|у)лка'
пер Тест1 = "Белка".ПолноеСовпадение(ОбразецПолноеСовпадение) // Истина
пер Тест2 = "Булка".ПолноеСовпадение(ОбразецПолноеСовпадение) // Истина
пер Тест3 = "Бе".ПолноеСовпадение(ОбразецПолноеСовпадение) // Ложь
пер Тест4 = "Улка".ПолноеСовпадение(ОбразецПолноеСовпадение) // Ложь
// Если убрать скобки из образца:
ОбразецПолноеСовпадение = 'Бе|улка'
Тест1 = "Белка".ПолноеСовпадение(ОбразецПолноеСовпадение) // Ложь
Тест2 = "Булка".ПолноеСовпадение(ОбразецПолноеСовпадение) // Ложь
Тест3 = "Бе".ПолноеСовпадение(ОбразецПолноеСовпадение) // Истина
Тест4 = "улка".ПолноеСовпадение(ОбразецПолноеСовпадение) // Истина
ПолучитьСтроки
Возвращает массив строк, полученный путем разделения данной по символам окончания строк ("\н"
, "\в"
, "\в\н"
).
Представление
Представление(): Строка
Переопределение: Представление |
Возвращает текущий экземпляр строки.
Пусто
Пусто(): Булево
Проверяет, что строка не содержит символов (""
).
Развернуть
Развернуть(): Строка
Возвращает развернутую строку: первые символы становятся последними, а последние - первыми.
Разделить
Перегрузка: Разделить(Образец: Образец, ВключаяПустые: Булево = Ложь, КоличествоРазбиений: Число = 0): Массив<Строка> |
Разделяет строку на части по указанной строке-разделителю Разделитель
. ВключаяПустые
- указывает, включать ли в результирующий массив пустые строки (когда 2 разделителя шли подряд или когда разделители находятся на границах строки). Возвращает массив полученных частей, исключая разделители.
Разделить
Разделяет строку на части по подстрокам, удовлетворяющим образцу Образец
. ВключаяПустые
- указывает, включать ли в результирующий массив пустые строки (когда 2 разделителя шли подряд или когда разделители находятся на границах строки). Возвращает массив полученных частей, исключая разделители. Выполняет не более, чем КоличествоРазбиений
разбиений (размер возвращаемого массива не превышает величины SplitCount + 1
). В случае, если величина КоличествоРазбиений
равна 0, выполняются все возможные разбиения.
Примеры
знч ТестоваяСтрока = "Абра Кадабра! Сказал_Знаменитый Волшебник. Вот, и все."
пер РезультатРазбиения = ТестоваяСтрока.Разделить(Образец = '[ _.,!]', ВключаяПустые = Ложь)
// РезультатРазбиения содержит значение ["Абра", "Кадабра", "Сказал", "Знаменитый", "Волшебник", "Вот", "и", "все"]
РезультатРазбиения = ТестоваяСтрока.Разделить(Образец = '[ _.,!]', ВключаяПустые = Истина)
// РезультатРазбиения содержит значение ["Абра", "Кадабра", "", "Сказал", "Знаменитый", "Волшебник", "", "Вот", "", "и", "все", ""]
Символ
Возвращает символ (строка длины 1), по указанному индексу Индекс
в исходной строке.
Содержит
Проверяет, содержится ли подстрока, подходящая под образец Образец
, в исходной строке.
Примеры
знч Тест1 = "abracadabra".Содержит('\ц') // Ложь
знч Тест2 = "8-800-333-93-13".Содержит('\ц') // Истина
Содержит
Проверяет, содержится ли строка Строка
в исходной строке. ИгнорироватьРегистр
- указывает выполняется ли сравнение с учетом или без учета регистра.
Сократить
Сократить(): Строка
Удаляет пробельные символы в начале и конце строки. Возвращает полученную строку.
СократитьСКонца
СократитьСКонца(): Строка
Удаляет пробельные символы в конце строки. Возвращает полученную строку.
СократитьСНачала
СократитьСНачала(): Строка
Удаляет пробельные символы в начале строки. Возвращает полученную строку.
Сравнить
Возвращает результат лексикографического сравнения со строкой Строка
. ИгнорироватьРегистр
- указывает выполняется ли сравнение с учетом или без учета регистра.
См. также
ТолькоБуквы
ТолькоБуквы(): Булево
Проверяет, что строка состоит только из букв.
ТолькоБуквыИлиЦифры
ТолькоБуквыИлиЦифры(): Булево
Проверяет, что строка состоит только из букв или цифр.
ТолькоЦифры
ТолькоЦифры(): Булево
Проверяет, что строка состоит только из цифр.
Удалить
Удаляет подстроку Строка
из текущей, если такая подстрока имеется, возвращает новую строку. ТолькоПервое
- признак удаления только первого вхождения подстроки (иначе удаляются все).
УдалитьДиапазон
Удаляет символы в диапазоне от От
до До
в исходной строке, не включая верхний индекс. Значением по умолчанию конечного индекса До
является длина строки. Возвращает результирующую строку.
ЧислоВхождений
Возвращает количество непересекающихся вхождений подстроки Строка
.