Обрезка (компьютерное программирование)
Эта статья нуждается в дополнительных цитатах для проверки . ( февраль 2015 г. ) |
В компьютерном программировании обрезка ( trim ) или зачистка ( strips ) — это манипуляция со строкой , при которой начальные и конечные пробелы удаляются из строки .
Например, строка (заключенная в апострофы)
' this is a test '
будет изменен после обрезки на
'this is a test'
Варианты
[ редактировать ]Левая или правая обрезка
[ редактировать ]Наиболее популярные варианты функции обрезки обрезают только начало или конец строки. Обычно называются ltrim и rtrim соответственно или, в случае Python, lstrip и rstrip . C# использует TrimStart и TrimEnd , а также Common Lisp string-left-trim и string-right-trim . В Pascal и Java эти варианты не встроены, хотя Object Pascal (Delphi) имеет TrimLeft и TrimRight . функции [1]
Параметризация списка символов пробелов
[ редактировать ]Многие функции обрезки имеют дополнительный параметр, позволяющий указать список символов для обрезки вместо символов пробелов по умолчанию. Например, PHP и Python допускают этот необязательный параметр, а Pascal и Java — нет. С Common Lisp'ом string-trim
параметр (называемый символьным-мешком функции требуется ). Библиотека C++ Boost определяет символы пробела в соответствии с локалью , а также предлагает варианты с параметром предиката ( функтором ), позволяющим выбирать, какие символы обрезаться.
Возвращаемое значение специальной пустой строки
[ редактировать ]Необычный вариант обрезки возвращает специальный результат, если после операции обрезки не осталось символов. Например, Apache Jakarta в StringUtils есть функция под названием stripToNull
который возвращает null
вместо пустой строки.
Нормализация пространства
[ редактировать ]Нормализация пространства — это связанная манипуляция со строками, при которой помимо удаления окружающих пробелов любая последовательность символов пробелов в строке заменяется одним пробелом. Нормализация пространства выполняется функцией с именем Trim()
в приложениях для работы с электронными таблицами (включая Excel , Calc , Gnumeric и Google Docs ), а также normalize-space()
функция в XSLT и XPath ,
Обрезка на месте
[ редактировать ]Хотя большинство алгоритмов возвращают новую (обрезанную) строку, некоторые изменяют исходную строку на месте . Примечательно, что библиотека Boost позволяет либо обрезать на месте, либо возвращать обрезанную копию.
Определение пробелов
[ редактировать ]Символы, которые считаются пробелами, различаются в зависимости от языка программирования и реализации. Например, C традиционно учитывает только символы пробела, табуляции, перевода строки и возврата каретки, тогда как языки, поддерживающие Unicode, обычно включают все символы пробела Unicode. Некоторые реализации также включают управляющие коды ASCII (непечатаемые символы) вместе с пробелами.
Метод обрезки Java рассматривает пробелы ASCII и управляющие коды как пробелы, в отличие от метода Java. isWhitespace()
метод, [2] который распознает все пробельные символы Юникода.
Функция Trim Delphi считает символы от U+0000 (NULL) до U+0020 (ПРОБЕЛ) пробелами.
Пробелы без пробелов
[ редактировать ]Блок Юникода «Шаблоны Брайля» содержит U+2800 ⠀ ПУСТОЙ ШАБЛОН БРАЙЛЯ , образец Брайля без выступающих точек. В стандарте Unicode прямо указано, что он не действует как пробел.
Неразрывное пространство U+00A0 ПРОСТРАНСТВО БЕЗ РАЗРЫВА ( ,   ) также можно рассматривать как непространственный для целей обрезки.
Использование
[ редактировать ]Ссылки
[ редактировать ]- ^ "Подрезать" . Freepascal.org. 02.02.2013 . Проверено 24 августа 2013 г.
- ^ «Персонаж (платформа Java 2 SE 5.0)» . Java.sun.com . Проверено 24 августа 2013 г.
Внешние ссылки
[ редактировать ]- Tcl: обрезка струн
- Faster JavaScript Trim — сравнение различных реализаций обрезки JavaScript.
- Обрезка и обрезка строк php - обрезка и обрезка строк php