Приветствую Вас ГостьВоскресенье, 05.05.2024, 01:49

Каталог статей


Убрать лишние символы из строки

Показали оригинальное решение задачи, в которой надо оставить в строке только определенные символы. Набор символов может быть различным.

Например надо чтобы в строке остались только латинские буквы и цифры:

Функция КорректныйНабор()
    мСимволы = "abcdefghijklmnopqrstuvwxyz";
    Возврат "0123456789" + мСимволы + ВРег(мСимволы);    
КонецФункции
 
Процедура ПривестиТекст(мТекст)
    мТекст  = СтрСоединить(СтрРазделить(мТекст, СтрСоединить(СтрРазделить(мТекст, КорректныйНабор()))));      
КонецПроцедуры
 

Смысл в следующем:

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

Сначала разделяем исходную строку по корректным символам. СтрРазделить(мТекст, КорректныйНабор()). На выходе получим массив символов, которые не включены в корректный набор.

Далее объединяем полученный набор обратно в строку: СтрСоединить(СтрРазделить(мТекст, КорректныйНабор())). На выходе получим только некорректные символы в строке.

Потом исходную строку разделяем используя в качестве разделителя строку некорректных символов. На выходе получаем массив корректных символов.

Далее объединяем массив корректных символов в строку.

Метод работает быстро. Сравнивал его и перебор строки по символам с проверкой на корректность. Метод отработал на 0.0004 сек. быстрее. Тестировал на строке длинной 3000 символов.

Категория: Программирование | Добавил: leshic (22.01.2024)
Просмотров: 65 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Вход на сайт
Поиск
Категории раздела
СКД [48]
Регистры [7]
Формы [40]
Администрирование [34]
Запросы [10]
Объекты конфигурации и типы данных [20]
Взаимодействие с другими базами, приложениями и источниками данных [16]
Программирование [29]
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0