This article needs additional citations for verification. (February 2015) |
В компьютерном программировании обрезка ( trim ) или зачистка ( strip ) — это манипуляция строками , при которой из строки удаляются начальные и конечные пробелы .
Например, строка (заключенная в апострофы)
«Это тест»
будет изменено после обрезки на
«это тест»
Наиболее популярные варианты функции trim обрезают только начало или конец строки. Обычно называются 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 — нет. Для string-trim
функции Common Lisp параметр (называемый character-bag ) является обязательным. Библиотека C++ Boost определяет пробельные символы в соответствии с locale , а также предлагает варианты с предикатным параметром ( функтором ) для выбора символов, которые будут обрезаны.
Необычный вариант trim возвращает специальный результат, если после операции trim не осталось никаких символов. Например, Apache Jakarta StringUtils имеет функцию stripToNull
, которая возвращает null
вместо пустой строки.
Нормализация пространства — это связанная строковая манипуляция, в которой в дополнение к удалению окружающих пробелов любая последовательность пробельных символов внутри строки заменяется одним пробелом. Нормализация пространства выполняется функцией, названной Trim()
в приложениях электронных таблиц (включая Excel , Calc , Gnumeric и Google Docs ), а также функцией normalize-space()
в XSLT и XPath ,
В то время как большинство алгоритмов возвращают новую (обрезанную) строку, некоторые изменяют исходную строку на месте . В частности, библиотека Boost позволяет либо обрезать на месте, либо возвращать обрезанную копию.
Символы, которые считаются пробелами, различаются в зависимости от языка программирования и реализации. Например, в языке C традиционно учитываются только символы пробела, табуляции, перевода строки и возврата каретки, тогда как языки, поддерживающие Unicode, обычно включают все символы пробела Unicode. Некоторые реализации также включают управляющие коды ASCII (непечатаемые символы) вместе с символами пробела.
Метод Trim Java рассматривает пробелы и управляющие коды ASCII как пробелы, в отличие от isWhitespace()
метода Java [2] , который распознает все пробельные символы Unicode.
Функция Trim в Delphi считает символы от U+0000 (NULL) до U+0020 (SPACE) пробелами.
Блок Unicode Braille Patterns содержит U+2800 ⠀ BRAILLE PATTERN BLANK — шаблон Брайля без выпуклых точек. В стандарте Unicode прямо указано, что он не действует как пробел.
Неразрывный пробел U+00A0 NO-BREAK SPACE ( , ) также может рассматриваться как непробел в целях обрезки.