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