Строка
Стд::Строка
Последовательность символов. Индексация символов с 0.
Сравнение
Структурное
Обход в цикле
Тип: Строка
Возвращает символы строки в порядке следования индексов.
Иерархия типа
Базовые типы: Объект, Представляемое, Сравнимое<Строка>
Литералы
Синтаксис: "<Содержимое строки>"
Где:
- <Содержимое строки> - последовательность Юникод-символов и экранируемых символов
- Экранируемые символы
- \н - новая строка (перевод строки)
- \в - возврат каретки
- \т - табуляция
- \\ - обратная косая черта (\)
- " - кавычка (")
- % - процент (%)
- $ - доллар ($)
- \юXXXXX - символ Юникода с номером XXXXX (десятичный)
Многострочный литерал Синтаксис как у обычной строки, но открывающая и закрывающая кавычки могут находиться на разных строках.
- Отступы (пробельные символы в начале каждой линии) не сохраняются, отступ считается по первому символу строки, следующему за открывающей кавычкой (далее - граница).
- Запрещено использовать любые пробельные символы, кроме непосредственно пробелов, на всех строках, кроме первой, до границы.
- Пробельные символы после последнего непробельного символа на каждой линии удаляются (кроме последней).
- Многострочный литерал должен начинаться на отдельной строке (не должен быть предварен иными конструкциями)
- Отступ линии может быть меньше границы.
- Отступ линии больше границы приведет к пробельным символам в начале линии.
- Разделитель строк - всегда '\n'
- Допустимо использовать экранируемые символы, в том числе переносы строк.
Интерполяция Интерполяцией строк называют включение в строковой литерал вычисляемых выражений, попадающих в содержимое литерала.
Синтаксис
- Использующий ВСтроку для преобразования
- Краткий: %ИмяПеременной Именем переменной считается последовательность символов, образующих идентификатор, т.е. %Переменная.Поле == %{Переменная}.Поле
- Полный: %{Выражение}
- Использующий [Object.Presentation( для преобразования
- Краткий: $ИмяПеременной
- Полный: ${Выражение}
- Использующий Представление для форматирования: ${Выражение|Формат}
- Последовательности %x и $x, где x- символ, с которого не может начинаться идентификатор, кроме '{', не считаются вставками интерполяции
- Неопределено в обоих случаях преобразуется в пустую строку
Примеры
// Пример многострочного литерала
знч Xml1 =
"<node>
<property>value</property>
</node>"
// ^
// | - условная граница многострочного литерала, пробельные символы до нее не включаются в содержимое
// Равносильная запись (однострочный литерал)
знч Xml2 = "<node>\н <property>value</property>\н</node>"
// Пример интерполяции
знч Имя = "Мир"
знч Сообщение = "Привет, %Имя!\нСейчас ${Время.Сейчас()|ЧЧ:мм}"
Арифметические операции
- Строка + Объект? = Строка (конкатенация)
Конкатенация использует ВСтроку для преобразования значений в строку.
При конкатенации Неопределено преобразуется в
"undefined"
Операция []
Только чтение
Возвращает симв ол (строка длины 1), по указанному индексу в исходной строке.
Конструкторы
Строка
Создает объект на основании переданных байтовБайты и кодировки Кодировка.
На клиенте поддерживается только Кодировка UTF-8.
Методы
ВБайты
Возвращает представление строки в виде последовательности байтов с учетом кодировки. По умолчанию используется кодировкаUTF-8.
На клиенте поддерживается только Кодировка UTF-8.
ВВерхнийРегистр
@ПроверятьИспользованиеЗначения
ВВерхнийРегистр(): СтрокаВНижнийРегистр
@ПроверятьИспользованиеЗначения
ВНижнийРегистр(): СтрокаВСтроку
ВСтроку(): СтрокаПереопределение
Объект::ВСтроку
Вставить
@ПроверятьИспользованиеЗначения
Вставить(
Индекс: Число,
Строка: Строка
): СтрокаСтрока начиная с индекса Индекс в текущую.
Длина
Длина(): ЧислоДополнитьСКонца
Дополняет исходную строку доДлина символов, путем добавления символов Символ в конец строки.
ДополнитьСНачала
Дополняет исходную строку доДлина символов, путем добавления символов Символ в начало строки.
ЗаканчиваетсяНа
Проверяет, заканчивается ли исходная строка на подстрокуСтрока.
ИгнорироватьРегистр - указывает выполняется ли сравнение с учетом или без учета регистра.
Заменить
@ПроверятьИспользованиеЗначения
Заменить(
Образец: Образец,
Замена: Строка,
КоличествоЗамен: Число = 0
): СтрокаКоличествоЗаме н подстрок, удовлетворяющих регулярному выражению Образец, на строку Замена.
Если значение КоличествоЗамен равно 0, то выполняются все возможные замены. Иначе выполняется ровно КоличествоЗамен замен.
В случае, если значение, переданное в КоличествоЗамен < 0, выбрасывается исключение ИсключениеНедопустимыйАргумент.
В строке Замена могут содержаться ссылки на "группы захвата", обозначенные в Образец.
Каждая ссылка вида $<Имя> или $g будут заменены на последнее совпадение (подстроку), найденное группой захвата с таким именем или номером. В $g как номер группы всегда воспринимаются все идущие подряд после $ цифры. Если дальнейшие цифры формируют число, которое не является корректным номером группы, то выбрасывается исключение ИсключениеНекорректноеРегулярноеВыражение.
Для четкого обозначения номера ссылки можно брать ее в фигурные скобки. Например: ${12} - ссылка на 12 группу захвата.
Также в случае использования некорректной строки-замены Замена выбрасывается исключение
ИсключениеНекорректноеРегулярноеВыражение.
Возвращает результирующую строку.
Перегрузка
Заменить(Строка: Строка, Замена: Строка, ТолькоПервое: Булево = Ложь): Строка
Заменить(Образец: Образец, Заменитель: (Совпадение)->Строка, КоличествоЗамен: Число = 0): Строка
Примеры
// Пусть есть строка:
знч ТестоваяСтрока = "один: 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.