Каталог решений - Работа со строками: от простого к сложному

Работа со строками: от простого к сложному

Работа со строками: от простого к сложному

В наличии

Простые примеры работы со строками, в конце более читаемый разбор сложных текстов.

Категория:

Описание

Соединение строк (конкатенация)

СтавкаНДС = "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"

    Аналогично, только наоборот работает функция СтрСоединить, преобразуя массив к строке.

     

    has been added to your cart:
    Оформление заказа