Link Search Menu Expand Document

Строка

Стд::Строка
Базовые типы: Объект, Представляемое, Сравнимое<Строка>

Иерархия типа

graph BT;
Строка-->Представляемое;
Представляемое-->Объект;
Строка-->Сравнимое&ltСтрока&gt;
Сравнимое&ltСтрока&gt-->Объект;

Последовательность символов. Индексация символов с 0.

Сравнение структурное.

Обход в цикле:

Возвращает символы строки в порядке следования индексов.


Литералы

Синтаксис: "<Содержимое строки>" Где:

  • <Содержимое строки> - последовательность Юникод-символов и экранируемых символов
  • Экранируемые символы
  • \н - новая строка (перевод строки)
  • \в - возврат каретки
  • \т - табуляция
  • \\ - обратная косая черта (\)
  • " - кавычка (“)
  • \% - процент (%)
  • $ - доллар ($)
  • \юXXXXX - символ Юникода с номером XXXXX (десятичный)

Многострочный литерал Синтаксис как у обычной строки, но открывающая и закрывающая кавычки могут находиться на разных строках.

  • Отступы (пробельные символы в начале каждой линии) не сохраняются, отступ считается по первому символу строки, следующему за открывающей кавычкой (далее - граница).
  • Запрещено использовать любые пробельные символы, кроме непосредственно пробелов, на всех строках, кроме первой, до границы.
  • Пробельные символы после последнего непробельного символа на каждой линии удаляются (кроме последней).
  • Многострочный литерал должен начинаться на отдельной строке (не должен быть предварен иными конструкциями)
  • Отступ линии может быть меньше границы.
  • Отступ линии больше границы приведет к пробельным символам в начале линии.
  • Разделитель строк - всегда ‘\n’
  • Допустимо использовать экранируемые символы, в том числе переносы строк.

Интерполяция Интерполяцией строк называют включение в строковой литерал вычисляемых выражений, попадающих в содержимое литерала.

Синтаксис

  • Использующий ВСтроку для преобразования
    • Краткий: %ИмяПеременной Именем переменной считается последовательность символов, образующих идентификатор, т.е. %Переменная.Поле == %{Переменная}.Поле
    • Полный: %{Выражение}
  • Использующий Представление для преобразования
    • Краткий: $ИмяПеременной
    • Полный: ${Выражение}
  • Использующий Представление для форматирования: ${Выражение|Формат}
  • Последовательности %x и $x, где x- символ, с которого не может начинаться идентификатор, кроме ‘{‘, не считаются вставками интерполяции
  • Неопределено в обоих случаях преобразуется в пустую строку

Арифметические операции

  • Строка + Объект? = Строка (конкатенация) Конкатенация использует ВСтроку для преобразования значений в строку. При конкатенации Неопределено преобразуется в "undefined"

Операция []

[Ключ: Число]: Строка
Только чтение

Возвращает символ (строка длины 1), по указанному индексу в исходной строке.


Конструкторы

Строка

Строка(
  Байты: Байты,
  Кодировка: Кодировка|Строка = Кодировка.Utf8)

Создает объект на основании переданных байтов Байты и кодировки Кодировка.

На клиенте поддерживается только Кодировка UTF-8.


Методы

ВБайты

ВБайты(Кодировка: Кодировка|Строка = Кодировка.Utf8): Байты

Возвращает представление строки в виде последовательности байтов с учетом кодировки. По умолчанию используется кодировка UTF-8.

На клиенте поддерживается только Кодировка UTF-8.


ВВерхнийРегистр

ВВерхнийРегистр(): Строка

Возвращает копию строки, со символами в верхнем регистре.


ВНижнийРегистр

ВНижнийРегистр(): Строка

Возвращает копию строки, со символами в нижнем регистре.


ВСтроку

ВСтроку(): Строка
Переопределение: ВСтроку

Возвращает текущий экземпляр строки.


Вставить

Вставить(
  Индекс: Число,
  Строка: Строка
): Строка

Возвращает новую строку, полученную путем вставки подстроки Строка начиная с индекса Индекс в текущую.


Длина

Длина(): Число

Возвращает длину строки (количество символов).


ДополнитьСКонца

ДополнитьСКонца(
  Длина: Число = 0,
  Символ: Строка
): Строка

Дополняет исходную строку до Длина символов, путем добавления символов Символ в конец строки.


ДополнитьСНачала

ДополнитьСНачала(
  Длина: Число = 0,
  Символ: Строка
): Строка

Дополняет исходную строку до Длина символов, путем добавления символов Символ в начало строки.


ЗаканчиваетсяНа

ЗаканчиваетсяНа(
  Строка: Строка,
  ИгнорироватьРегистр: Булево = Ложь
): Булево

Проверяет, заканчивается ли исходная строка на подстроку Строка. ИгнорироватьРегистр - указывает выполняется ли сравнение с учетом или без учета регистра.


Заменить

Заменить(
  Образец: Образец,
  Замена: Строка,
  КоличествоЗамен: Число = 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): Строка

Заменяет подстроку Строка на Замена в исходной строке. ТолькоПервое - признак замены только первого вхождения подстроки (иначе удаляются все). Возвращает результирующую строку.


ЗаменитьДиапазон

ЗаменитьДиапазон(
  Замена: Строка,
  От: Число,
  До: Число
): Строка

Заменяет диапазон символов с индекса От до До, не включая верхний индекс, на Замена. Значением по умолчанию конечного индекса До является длина строки. Возвращает результирующую строку.


КоличествоВхождений

КоличествоВхождений(Строка: Строка): Число

Возвращает количество непересекающихся вхождений подстроки Строка.


Найти

Найти(
  Строка: Строка,
  От: Число = 0,
  До: Число
): Число

Возвращает индекс начала первого вхождения подстроки Строка в диапазоне от От до До исходной строки, не включая верхний индекс. Значением по умолчанию конечного индекса До является длина строки. Если вхождений нет, возвращает -1.


НайтиСКонца

НайтиСКонца(
  Строка: Строка,
  От: Число = 0,
  До: Число
): Число

Возвращает индекс начала последнего вхождения подстроки Строка в диапазоне от От до До исходной строки, не включая верхний индекс. Значением по умолчанию конечного индекса До является длина строки. Если вхождений нет, возвращает -1.


НачинаетсяС

НачинаетсяС(
  Строка: Строка,
  ИгнорироватьРегистр: Булево = Ложь
): Булево

Проверяет, начинается ли исходная строка на подстроку Строка. ИгнорироватьРегистр - указывает выполняется ли сравнение с учетом или без учета регистра.


Подстрока

Подстрока(
  От: Число,
  До: Число
): Строка

Возвращает подстроку из символов в диапазоне от От до До, не включая верхний индекс. Значением по умолчанию конечного индекса До является длина строки.


ПодстрокаСКонца

ПодстрокаСКонца(Длина: Число = 0): Строка

Возвращает указанное количество символов Длина с конца строки.


ПодстрокаСНачала

ПодстрокаСНачала(Длина: Число = 0): Строка

Возвращает указанное количество символов Длина с начала строки.


ПолноеСовпадение

ПолноеСовпадение(Образец: Образец): Булево

Проверяет, подходит ли исходная строка под образец Образец.

Примеры

пер ОбразецПолноеСовпадение = 'Б(е|у)лка'
пер Тест1 = "Белка".ПолноеСовпадение(ОбразецПолноеСовпадение) // Истина
пер Тест2 = "Булка".ПолноеСовпадение(ОбразецПолноеСовпадение) // Истина
пер Тест3 = "Бе".ПолноеСовпадение(ОбразецПолноеСовпадение) // Ложь
пер Тест4 = "Улка".ПолноеСовпадение(ОбразецПолноеСовпадение) // Ложь

// Если убрать скобки из образца:
ОбразецПолноеСовпадение = 'Бе|улка'
Тест1 = "Белка".ПолноеСовпадение(ОбразецПолноеСовпадение) // Ложь
Тест2 = "Булка".ПолноеСовпадение(ОбразецПолноеСовпадение) // Ложь
Тест3 = "Бе".ПолноеСовпадение(ОбразецПолноеСовпадение) // Истина
Тест4 = "улка".ПолноеСовпадение(ОбразецПолноеСовпадение) // Истина

ПолучитьСтроки

ПолучитьСтроки(): Массив<Строка>

Возвращает массив строк, полученный путем разделения данной по символам окончания строк ("\н", "\в", "\в\н").


Представление

Представление(): Строка
Переопределение: Представление

Возвращает текущий экземпляр строки.


Пусто

Пусто(): Булево

Проверяет, что строка не содержит символов ("").


Развернуть

Развернуть(): Строка

Возвращает развернутую строку: первые символы становятся последними, а последние - первыми.


Разделить

Разделить(
  Разделитель: Строка,
  ВключаяПустые: Булево = Ложь
): Массив<Строка>
Перегрузка:
Разделить(Образец: Образец, ВключаяПустые: Булево = Ложь, КоличествоРазбиений: Число = 0): Массив<Строка>

Разделяет строку на части по указанной строке-разделителю Разделитель. ВключаяПустые - указывает, включать ли в результирующий массив пустые строки (когда 2 разделителя шли подряд или когда разделители находятся на границах строки). Возвращает массив полученных частей, исключая разделители.


Разделить

Разделить(
  Образец: Образец,
  ВключаяПустые: Булево = Ложь,
  КоличествоРазбиений: Число = 0
): Массив<Строка>
Перегрузка:
Разделить(Разделитель: Строка, ВключаяПустые: Булево = Ложь): Массив<Строка>

Разделяет строку на части по подстрокам, удовлетворяющим образцу Образец. ВключаяПустые - указывает, включать ли в результирующий массив пустые строки (когда 2 разделителя шли подряд или когда разделители находятся на границах строки). Возвращает массив полученных частей, исключая разделители. Выполняет не более, чем КоличествоРазбиений разбиений (размер возвращаемого массива не превышает величины SplitCount + 1). В случае, если величина КоличествоРазбиений равна 0, выполняются все возможные разбиения.

Примеры

знч ТестоваяСтрока = "Абра Кадабра! Сказал_Знаменитый Волшебник. Вот, и все."

пер РезультатРазбиения = ТестоваяСтрока.Разделить(Образец = '[ _.,!]', ВключаяПустые = Ложь)
// РезультатРазбиения содержит значение ["Абра", "Кадабра", "Сказал", "Знаменитый", "Волшебник", "Вот", "и", "все"]

РезультатРазбиения = ТестоваяСтрока.Разделить(Образец = '[ _.,!]', ВключаяПустые = Истина)
// РезультатРазбиения содержит значение ["Абра", "Кадабра", "", "Сказал", "Знаменитый", "Волшебник", "", "Вот", "", "и", "все", ""]

Символ

Символ(Индекс: Число): Строка

Возвращает символ (строка длины 1), по указанному индексу Индекс в исходной строке.


Содержит

Содержит(Образец: Образец): Булево
Перегрузка:
Содержит(Строка: Строка, ИгнорироватьРегистр: Булево = Ложь): Булево

Проверяет, содержится ли подстрока, подходящая под образец Образец, в исходной строке.

Примеры

знч Тест1 = "abracadabra".Содержит('\ц') // Ложь
знч Тест2 = "8-800-333-93-13".Содержит('\ц') // Истина

Содержит

Содержит(
  Строка: Строка,
  ИгнорироватьРегистр: Булево = Ложь
): Булево
Перегрузка:
Содержит(Образец: Образец): Булево

Проверяет, содержится ли строка Строка в исходной строке. ИгнорироватьРегистр - указывает выполняется ли сравнение с учетом или без учета регистра.


Сократить

Сократить(): Строка

Удаляет пробельные символы в начале и конце строки. Возвращает полученную строку.


СократитьСКонца

СократитьСКонца(): Строка

Удаляет пробельные символы в конце строки. Возвращает полученную строку.


СократитьСНачала

СократитьСНачала(): Строка

Удаляет пробельные символы в начале строки. Возвращает полученную строку.


Сравнить

Сравнить(
  Строка: Строка,
  ИгнорироватьРегистр: Булево
): Число

Возвращает результат лексикографического сравнения со строкой Строка. ИгнорироватьРегистр - указывает выполняется ли сравнение с учетом или без учета регистра.

См. также

Сравнить


ТолькоБуквы

ТолькоБуквы(): Булево

Проверяет, что строка состоит только из букв.


ТолькоБуквыИлиЦифры

ТолькоБуквыИлиЦифры(): Булево

Проверяет, что строка состоит только из букв или цифр.


ТолькоЦифры

ТолькоЦифры(): Булево

Проверяет, что строка состоит только из цифр.


Удалить

Удалить(
  Строка: Строка,
  ТолькоПервое: Булево = Ложь
): Строка

Удаляет подстроку Строка из текущей, если такая подстрока имеется, возвращает новую строку. ТолькоПервое - признак удаления только первого вхождения подстроки (иначе удаляются все).


УдалитьДиапазон

УдалитьДиапазон(
  От: Число,
  До: Число
): Строка

Удаляет символы в диапазоне от От до До в исходной строке, не включая верхний индекс. Значением по умолчанию конечного индекса До является длина строки. Возвращает результирующую строку.


Список унаследованных методов

Объект

Сравнимое