Trim

Trim

Trim или strip — часто используемое название для строковой функции, которая удаляет начальные и конечные пробелы.

Например, в Python:

'  Это тест  '.strip()

возвращает строку:

'Это тест'

Содержание

Варианты

Наиболее популярные варианты функции trim удаляют пробелы только в начале и в конце строк. Обычно они называются ltrim и rtrim соответственно, или в случае языка Python, — lstrip и rstrip. В C# используется название TrimStart и TrimEnd, а в Common Lisp string-left-trim и string-right-trim. В Паскале и в Java нет встроенных вариантов, хотя в Delphi присутствуют функции TrimLeft и TrimRight.[1]

Многие функции trim имеют опциональный параметр для определения списка символов к удалению. Например, PHP и Python позволяют задавать такой опциональный параметр, в то время как Паскаль и Java этого не дают. В функции string-trim языка Common Lisp требуется параметр (называемый character-bag). В C++ библиотека Boost определяет символы пробела в соответствии с локалью, а также предлагает варианты параметра предиката для выбора того, какие символы удалять.

В отдельных случаях trim возвращает определённый результат, если после операции удаления не осталось символов. Например, в StringUtils из Apache Jakarta Project есть функция, называемая stripToNull, которая возвращает null взамен пустой строки.

Альтернативой удаления строки является нормализация пробелов, когда в дополнение к удалению символов пробела по краям строки также любые последовательности пробелов внутри строки заменяются одним пробелом. Нормализация пробелов выполняется Trim() приложениях работы с таблицами (включая Excel, Calc, Gnumeric и Google Docs), и функцией normalize-space() в XSLT и XPath.

В то время как большинство алгоритмов возвращают новую (усечённую строку), некоторые изменяют первоначальную строку in-place, преобразуя структуру данных. Примечательно, что библиотека Boost позволяет либо усечение «in-place», либо возвращать усечённую копию строки.

Определение символов пробела

Символы, которые относят к пробелам, различаются в разных языках программирования и их реализациях. Например, C традиционно считает таковыми символы пробела, табуляции, перевода строки и возврата каретки, в то время как языки, поддерживающие юникод, обычно относят сюда все символы пробелов юникода. Некоторые реализации вместе с символами пробелом также относят сюда и управляющие символы ASCII (непечатаемые символы).

Метод trim в Java считает пробелами и управляющие коды, тогда как метод isWhitespace()[2] распознаёт символы пробелов юникода.

Применение

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

Пример использования Язык программирования
String.Trim([chars]) C#, Visual Basic .NET, Windows PowerShell
std.string.strip(string) D
(string-trim '(#\Space #\Tab #\Newline) string) Common Lisp
(string-trim string) Scheme
string.trim() Java
Trim(String) Паскаль[3]
string.strip() Python
strip(string [,option , char]) REXX
string:strip(string [,option , char]) Erlang
string.strip Ruby
trim($string) PHP
Trim(String) QBasic, Visual Basic, Delphi
string trim $string Tcl
ALLTRIM(String) FoxPro

Другие языки

В языках без встроенной функции trim(), для достижения сравнимой функциональности, обычно пишутся функции, выполняющие ту же задачу.

AWK

В AWK, для этого можно использовать регулярные выражения:

ltrim(v) = gsub(/^[ \t\r]+/, "", v)
rtrim(v) = gsub(/[ \t\r]+$/, "", v)
trim(v)  = ltrim(v); rtrim(v)

или:

function ltrim(s) { sub(/^[ \t\r]+/, "", s); return s }
function rtrim(s) { sub(/[ \t\r]+$/, "", s); return s }
function trim(s)  { return rtrim(ltrim(s)); }

JavaScript

Начиная с ECMAScript 5, в JavaScript появилась возможность использовать trim().[4] До её появления объекты String можно было расширять с помощью прототипа:

String.prototype.trim = function() {
  return this.replace(/^\s+|\s+$/g, "");
}

Примечания

  1. Функциф trim в языке FreePascal  (англ.) (Проверено 25 ноября 2009)
  2. Функция isWhitespace в Java  (англ.) (Проверено 25 ноября 2009)
  3. Функция Trim в Паскале  (англ.) (Проверено 25 ноября 2009)
  4. Alex Blewitt. ECMAScript 5 released  (англ.). InfoQ (9 December 2009). Архивировано из первоисточника 28 марта 2012. Проверено 10 декабря 2009.

Ссылки



Wikimedia Foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Полезное


Смотреть что такое "Trim" в других словарях:

  • trim´ly — trim «trihm», verb, trimmed, trim|ming, adjective, trim|mer, trim|mest, noun, adverb. –v.t. 1. to make neat by cutting away parts: »The gardene …   Useful english dictionary

  • trim — [trim] vt. trimmed, trimming [via ME dial. < OE trymman, to make firm, set in order, array < trum, strong, firm: for IE base see TREE] 1. Obs. to prepare; fit out; dress 2. to put in proper order; make neat or tidy, esp. by clipping,… …   English World dictionary

  • TRIM — ist ein Befehl zur Markierung ungenutzter oder ungültiger Datenblöcke auf Speichermedien zum Zweck der späteren Wiederbeschreibung[1]. Der TRIM Befehl ermöglicht es einem Betriebssystem, dem Speichermedium Solid State Drive (SSD) mitzuteilen,… …   Deutsch Wikipedia

  • Trim — Trim, a. [Compar. {Trimmer}; superl. {Trimmest}.] [See {Trim}, v. t.] Fitly adjusted; being in good order., or made ready for service or use; firm; compact; snug; neat; fair; as, the ship is trim, or trim built; everything about the man is trim;… …   The Collaborative International Dictionary of English

  • Trim — may refer to:Places* Trim, County Meath, a town and castle in Ireland * Trim Station (OC Transpo), a bus station in Ottawa, Canada * Trim Road, in Ottawa, CanadaDecoration* Trim (sewing), ornaments applied to clothing or other textiles * Trim… …   Wikipedia

  • trim — [trɪm] verb trimmed PTandPPX trimming PRESPARTX [transitive] to remove parts of a plan, set of activities, company etc in order to reduce its costs: • We need to trim the Defence budget by another £500m. • The company is to trim its workforce (=… …   Financial and business terms

  • Trim — Trim, v. t. [imp. & p. p. {Trimmed}; p. pr. & vb. n. {Trimming}.] [OE. trimen, trumen, AS. trymian, trymman, to prepare, dispose, make strong, fr. trum firm, strong; of uncertain origin.] 1. To make trim; to put in due order for any purpose; to… …   The Collaborative International Dictionary of English

  • trim — trȉm [b] (II)[/b] prid. <indekl.> DEFINICIJA kao prvi dio polusloženice 1. koji se odnosi na trim (I) (3) [trim specijalist; trim starješina] 2. koji se odnosi na fizičku kondiciju [trim akcija; trim pokret; trim centar] SINTAGMA trim… …   Hrvatski jezični portal

  • Trim — Trim, n. 1. Dress; gear; ornaments. [1913 Webster] Seeing him just pass the window in his woodland trim. Sir W. Scott. [1913 Webster] 2. Order; disposition; condition; as, to be in good trim. The trim of an encounter. Chapman. [1913 Webster] 3.… …   The Collaborative International Dictionary of English

  • trim — [adj1] neat, orderly apple pie order*, clean, clean cut, compact, dapper, fit, in good shape, neat as a pin*, nice, shipshape*, slick, smart, snug, spick and span*, spruce, streamlined, symmetrical, tidy, to rights*, uncluttered, well groomed;… …   New thesaurus

  • Trim — ist: eine Stadt in Irland: Trim (Irland) in der Informatik eine Funktion zum Entfernen von Leerzeichen am Anfang und Ende von Zeichenketten. Figur aus dem Buch Leben und Meinungen des Tristram Shandy von Laurence Sterne der Hund, der den Hund… …   Deutsch Wikipedia


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»