Строка
Стд::Строка
Последовательность символов. Индексация символов с 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.
НачинаетсяС
Проверяет, начинается ли исходная строка на подстрокуСтрока.
ИгнорироватьРегистр - указывает выполняется ли сравнение с учетом или без учета регистра.
Обрезать
Сокращает строку доМаксимальнаяДлина - Постфикс.Длина() символов и добавляет в конец Постфикс. Если длина строки меньше МаксимальнаяДлина символов, возвращает строку без изменений.
Исключения
ИсключениеНедопустимыйАргумент - если МаксимальнаяДлина <= 0 или длина Постфикс > МаксимальнаяДлина.
Примеры
знч ТестоваяСтрока = "Абра Кадабра! Сказал_Знаменитый Волшебник. Вот, и все."
пер Результат = ТестоваяСтрока.Обрезать(7, "...")
// В Результат будет значение "Абра..."
См. также
Перевернуть
@ПроверятьИспользованиеЗначения
Перевернуть(): СтрокаПрошлые имена: Развернуть
Подстрока
Возвращает подстроку из символов в диапазоне отОт до До, не включая верхний индекс.
Значением по умолчанию конечного индекса До является длина строки.
ПодстрокаСКонца
Возвращает указанное количество символовДлина с конца строки.
ПодстрокаСНачала
Возвращает указанное количество символовДлина с начала строки.
См. также
ПолноеСовпадение
Проверяет, подходит ли исходная строка под образецОбразец.
Примеры
пер ОбразецПолноеСовпадение = 'Б(е|у)лка'
пер Тест1 = "Белка".ПолноеСовпадение(ОбразецПолноеСовпадение) // Истина
пер Тест2 = "Булка".ПолноеСовпадение(ОбразецПолноеСовпадение) // Истина
пер Тест3 = "Бе".ПолноеСовпадение(ОбразецПолноеСовпадение) // Ложь
пер Тест4 = "Улка".ПолноеСовпадение(ОбразецПолноеСовпадение) // Ложь
// Если убрать скобки из образца:
ОбразецПолноеСовпадение = 'Бе|улка'
Тест1 = "Белка".ПолноеСовпадение(ОбразецПолноеСовпадение) // Ложь
Тест2 = "Булка".ПолноеСовпадение(ОбразецПолноеСовпадение) // Ложь
Тест3 = "Бе".ПолноеСовпадение(ОбразецПолноеСовпадение) // Истина
Тест4 = "улка".ПолноеСовпадение(ОбразецПолноеСовпадение) // Истина
ПолучитьСтроки
Возвращает массив строк, полученный путем разделения данной по символам окончания строк ("\н", "\в", "\в\н").
Представление
Представление(): СтрокаПереопределение
Представляемое::Представление
Пусто
Пусто(): Булево"").
Разделить
Разделяет строку на части по указанной строке-разделителюРазделитель.
ВключаяПустые - указывает, включать ли в результирующий массив пустые строки (когда 2 разделителя шли подряд или когда разделители находятся на границах строки).
Возвращает массив полученных частей, исключая разделители.
Перегрузка
Разделить(Образец: Образец, ВключаяПустые: Булево = Ложь, Количество: Число = 0): Массив<Строка>
Разделить
Версия 9.0 и выше
Образец.
ВключаяПустые - указывает, включать ли в результирующий массив пустые строки (когда 2 разделителя шли подряд или когда разделители находятся на границах строки).
Возвращает массив полученных частей, исключая разделители. Выполняет не более, чем Количество разбиений (размер возвращаемого массива не превышает величины Count + 1). В случае, если величина Количество равна 0, выполняются все возможные разбиения.
Перегрузка
Разделить(Разделитель: Строка, ВключаяПустые: Булево = Ложь): Массив<Строка>
Примеры
знч ТестоваяСтрока = "Абра Кадабра! Сказал_Знаменитый Волшебник. Вот, и все."
пер РезультатРазбиения = ТестоваяСтрока.Разделить(Образец = '[ _.,!]', ВключаяПустые = Ложь)
// РезультатРазбиения содержит значение ["Абра", "Кадабра", "Сказал", "Знаменитый", "Волшебник", "Вот", "и", "все"]
РезультатРазбиения = ТестоваяСтрока.Разделить(Образец = '[ _.,!]', ВключаяПустые = Истина)
// РезультатРазбиения содержит значение ["Абра", "Кадабра", "", "Сказал", "Знаменитый", "Волшебник", "", "Вот", "", "и", "все", ""]
Разделить
Версия 8.0 и ниже
Символ
Возвращает символ (строка длины 1), по указанному индексуИндекс в исходной строке.
Содержит
Проверяет, содержится ли подстрока, подходящая под образецОбразец, в исходной строке.
Перегрузка
Содержит(Строка: Строка, ИгнорироватьРегистр: Булево = Ложь): Булево
Примеры
знч Тест1 = "abracadabra".Содержит('\ц') // Ложь
знч Тест2 = "8-800-333-93-13".Содержит('\ц') // Истина
Содержит
Проверяет, содержится ли строкаСтрока в исходной строке.
ИгнорироватьРегистр - указывает выполняется ли сравнение с учетом или без учета регистра.
Перегрузка
Содержит(Образец: Образец): Булево
Сократить
@ПроверятьИспользованиеЗначения
Сократить(): СтрокаСократитьСКонца
@ПроверятьИспользованиеЗначения
СократитьСКонца(): СтрокаСократитьСНачала
@ПроверятьИспользованиеЗначения
СократитьСНачала(): СтрокаСравнить
Возвращает результат лексикографического сравнения со строкойСтрока.
ИгнорироватьРегистр - указывает выполняется ли сравнение с учетом или без учета регистра.
Перегрузка
Сравнимое::Сравнить(Значение: Тип): Число
См. также
ТолькоБуквы
ТолькоБуквы(): БулевоТолькоБуквыИлиЦифры
ТолькоБуквыИлиЦифры(): БулевоТолькоЦифры
ТолькоЦифры(): БулевоУдалить
@ПроверятьИспользованиеЗначения
Удалить(
Строка: Строка,
ТолькоПервое: Булево = Ложь
): СтрокаСтрока из текущей, если такая подстрока имеется, возвращает новую строку.
ТолькоПервое - признак удаления только первого вхождения подстроки (иначе удаляются все).
УдалитьДиапазон
Удаляет символы в диапазоне отОт до До в исходной строке, не включая верхний индекс.
Значением по умолчанию конечного индекса До является длина строки.
Возвращает результирующую строку.
Список унаследованных методов
Объект
Представляемое
Представление (Переопределение)