Работа со строками: от простого к сложному
Простые примеры работы со строками, в конце более читаемый разбор сложных текстов.
- Описание
- Подробнее
Описание
Соединение строк (конкатенация)
СтавкаНДС = "18%";
Результат = "Ставка НДС: " + СтавкаНДС; // "Ставка НДС: 18%"Кавычки в строке (иногда нужно использовать в " в строке в этом случае используются двойные кавычки ""
Результат = "Infostart ""Event"""; // Infostart "Event"Вычисление длины строки (СтрДлина)
ДлинаСтроки = СтрДлина("Infostart"); // 9Вставка специальных символов, символы по коду (Символы, Символ, КодСимвола)
Для получения особых символов переноса строки, табуляции и др. есть перечисление Символы
Результат = "Первая строка" + Символы.ПС + "Вторая строка";
// В результате:
// "Первая строка
// Вторая строка"Получение символа по коду (Символ)
Результат = Символ(1103); // "Я"
Получение кода символа (КодСимвола)
Результат = КодСимвола("Я"); // 1103
Удаление незначащих символов (СокрЛП, СокрЛ, СокрП)
Результат = СокрЛП(" Infostart "); // "Infostart"
Результат = СокрЛ(" Infostart "); // "Infostart "
Результат = СокрП(" Infostart "); // " Infostart"Проверка пустая строка (т.е. строка не содержит значимых символов пробел, табуляция, перенос строки не учитываются)
Если Не ЗначениеЗаполнено(Пример) Тогда
Сообщить("Строка пустая");
КонецЕсли;или
Если ПустаяСтрока(Пример) Тогда
Сообщить("Строка пустая");
КонецЕсли;Получение части строки (Лев, Прав, Сред)
Результат = Лев("Infostart", 4); // "Info"
Результат = Прав("Infostart", 5); // "start"
Результат = Сред("Infostart", 5, 3); // "sta"
Результат = Сред("Infostart", 5); // "start"
Изменение регистра (ВРег — преобразует в верхний регистр, НРег — нижний, ТРег — титульный)
Результат = ВРег("Infostart"); // "INFOSTART"
Результат = НРег("Infostart", 5); // "infostart"
Результат = ТРег("infostart event"); // "Infostart Event"
Работа с многострочными строками (СтрПолучитьСтроку, СтрЧислоСтрок)
Получение количество строк в строке
Строка = "Первая строка
|Вторая строка
|Третья строка";
Результат = СтрЧислоСтрок (Строка); //3
Получение строки по номеру
Строка = "Первая строка
|Вторая строка";
Результат = СтрПолучитьСтроку(Строка, 2); // "Вторая строка"Еще иногда требуется функция проверки многострочная строка или нет
// Проверяет строка многострочная?
//
// Параметры:
// Строка - Строка - Проверяемая строка
//
// Возвращаемое значение:
// Булево - Истина, если строка многострочная
//
Функция МногострочнаяСтрока(Строка) Экспорт
Возврат Булево(СтрНайти(Строка, Символы.ПС));
КонецФункцииПоиск и замена вхождений строки (СтрНайти, СтрЗаменить, СтрЧислоВхождений)
Проверка осуществляется с учетом регистра. Поддерживается с платформы 8.3.6.Проверка вхождения строки
ПроверяемаяСтрока = "Infostart Event";
Если СтрНайти(ПроверяемаяСтрока, "Event") Тогда
Сообщить("Слово Event входит в строку");
КонецЕсли;СтрНайти полезная и часто используемая функция предоставляет возможности
- Поиск в разных направлениях (с начала, с конца);
- Поиск с указанной позиции;
- Поиск вхождения с указанным номером (второе, третье и т.д.).
// Поиск позиции вхождения строки
Результат = СтрНайти("Infostart Event 2018", " "); // 10
// Поиск с конца
Результат = СтрНайти("Infostart Event 2018", " ", НаправлениеПоиска.СКонца); // 16
// Поиск с начальной позиции
Результат = СтрНайти("Infostart Event 2018", " ", , 12); // 16 Замена строк
// Замена подстроки
Результат = СтрЗаменить("Infostart Event 2018", "2018", "2019"); //"Infostart Event 2019"
// Удаление пробелов
Результат = СтрЗаменить("Infostart Event 2018", " ", ""); //"InfostartEvent2018"
Вычисление числа вхождений
Результат = СтрЧислоВхождений("Infostart Event 2018", " "); // 2
Сообщить("Пробел встречается " + Результат + " р.");Проверки строка начинается, заканчивается (СтрНачинаетсяС, СтрЗаканчиваетсяНа)
Поддерживается с платформы 8.3.6.
// Проверяет что строка начинается со слова "Infostart"
Результат = СтрНачинаетсяС("Infostart Event 2018", "Infostart"); // Истина
// Проверяет что строка заканчивается слова "Event"
Результат = СтрЗаканчиваетсяНа("Infostart Event 2018", "Event"); // ЛожьСравнение строк СтрСравнить
Строки сравниваются посимвольно по коду символа, для ясности несколько примеров "Строка12" < "Строка2", "8.3.9.2000" > "8.3.8", "8.3.9.2000" > "8.3.10"
С учетом регистра можно сравнить строки через знаки сравнения как в примерах
Сравнение без учета регистра можно произвести функций СтрСравнить. Поддерживается с платформы 8.3.6.
Возвращает:
- -1 — первая строка меньше второй
- 1 — первая строка больше второй.
- 0 — первая строка равна второй
Результат = СтрСравнить("Infostart Event 2018", "Infostart Event 2019"); // -1
Следует обратить внимание на Особенности сравнения строк при работе с базой данных
Преобразование в строку (Строка, Формат)
В языке 1С есть автоматическое преобразование типа когда все части выражения приводятся к типу первого выражения
Число = 1000;
Результат = "Число: " + Число; // "Число: 1 000"Преобразование функцией Строка
Число = 1000.25;
Результат = "Число: " + Строка(Число); // "Число: 1 000,25"при преобразовании появляется символ неразрывный пробел, а он обычно не нужен
"Правильнее" будет преобразовывать функцией формат, которая приводит к строке простые типы и можно воспользоватся конструктором

Число = 1000.25;
Результат = "Число: " + Формат(Число, "ЧГ="); // "Число: 1000,25"Строка на разных языках НСтр
Результат = НСтр("ru = 'Привет!'; en = 'Hello!'"); // Результат зависит от языкаФорматирование строки по шаблону СтрШаблон. Поддерживается с платформы 8.3.6.
Очень полезная функция которая позволяет избежать соединения строк и сделать текст более читабельным
Число = 1000.25;
Результат = СтрШаблон("Число: %1, Дата: %2", Число, Дата(1983,4,4)); // "Число: 1 000,25, Дата: 04.04.1983 00:00:00" Функции СтрСоединить, СтрРазделить. Поддерживается с платформы 8.3.6.
Очень полезные функции улучшают читаемость кода.
СтрРазделить удобна когда необходимо разобрать строку с разделителями, например CSV файл, разбор текста на слова, строки
Результат = СтрРазделить("Infostart Event 2018", " "); // Массив с элементами [0] = "Infostart", [1] = "Event ", [2] = "2018"Аналогично, только наоборот работает функция СтрСоединить, преобразуя массив к строке.

