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