Tunde

Trim ( eng.  trim  - trim, trim; în unele limbi - strip ) - funcție șir care elimină spațiile de început și de final .

De exemplu, în Python :

„Acesta este un test” . bandă ()

returnează un șir:

'Acesta este un test'

Cele mai populare variante ale funcției trimelimină spații doar la începutul și la sfârșitul rândurilor. Ele sunt de obicei denumite ltrimși rtrimrespectiv, sau în cazul limbajului Python , - lstripși rstrip. C# folosește TrimStartși TrimEnd, în timp ce Common Lisp string-left-trim folosește și string-right-trim. Nu există opțiuni încorporate în Pascal și Java , deși Delphi are TrimLeftși TrimRight. [unu]

Multe funcții trimau un parametru opțional pentru a specifica o listă de caractere de eliminat. De exemplu, PHP și Python permit un astfel de parametru opțional, în timp ce Pascal și Java nu. O funcție de string-trimlimbaj Common Lisp necesită un parametru (numit character-bag ). În C++ , biblioteca Boost definește caracterele de spațiu în funcție de localitate și oferă, de asemenea, opțiuni pentru un parametru predicat pentru a alege caracterele de eliminat.

În unele cazuri, trimreturnează un anumit rezultat dacă nu au mai rămas caractere după operația de ștergere. De exemplu, StringUtils din proiectul Apache Jakarta are o funcție numită stripToNull, care returnează nullîn schimb un șir gol.

O alternativă la eliminarea unui șir este normalizarea spațiilor albe, unde pe lângă eliminarea caracterelor spațiilor albe de la sfârșitul unui șir, orice secvențe de spații albe dintr-un șir sunt, de asemenea, înlocuite cu un singur spațiu. Normalizarea spațiilor albe este realizată Trim()de aplicații pentru foi de calcul (inclusiv Excel , Calc , Gnumeric și Google Docs ) și o funcție normalize-space()în XSLT și XPath .

În timp ce majoritatea algoritmilor returnează un nou (șir trunchiat), unii modifică șirul inițial în loc prin transformarea structurii datelor. În special, biblioteca Boost permite fie trunchierea „la loc”, fie returnarea unei copii trunchiate a șirului.

Caracterele care sunt denumite spații variază între limbajele de programare și implementările lor. De exemplu, în C, caracterele de spațiu, de tabulație, de avans de linie și de returnare a carului sunt tratate în mod tradițional ca atare, în timp ce limbile care acceptă Unicode includ, în general, toate caracterele de spațiu alb Unicode aici. Unele implementări includ, de asemenea, caractere de control ASCII (caractere neprintabile) în plus față de caracterele cu spații albe.

Metoda trimdin Java contorizează codurile de evadare drept spații albe, în timp ce metoda isWhitespace()[2] recunoaște caracterele Unicode spații albe .

Aplicație

Implementare în unele limbaje de programare:

Exemplu de utilizare Limbaj de programare
String .Trim([ caractere ]) C# , Visual Basic .NET , Windows PowerShell
std.string.strip( șir ) D
(string-trim '(#\Space #\Tab #\Newline) șir ) Lisp comun
(șir de tăiere șir ) Sistem
string.trim () Java , JavaScript
Trim ( șir ) Pascal [3]
string.strip () Piton
strip( șir [, opțiune , caracter ]) REXX
șir: strip( șir [, opțiune , caracter ]) Erlang
sfoară .fâșie rubin
trim( $șir ) PHP
Trim ( șir ) QBasic , Visual Basic , Delphi
string trim $string tcl
ALLTRIM( șir ) FoxPro

În limbile fără o funcție încorporată trim(), pentru a obține o funcționalitate comparabilă, este obișnuit să scrieți funcții care îndeplinesc aceeași sarcină.

De exemplu, în awk puteți folosi expresii regulate pentru aceasta :

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

sau:

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

JavaScript a fost capabil să utilizeze trim()[4] încă din ECMAScript 5, înainte de aceasta, obiectele String puteau fi extinse cu un prototip :

String . prototip . trim = function () { return this . înlocuiți ( /^\s+|\s+$/g , "" ); }

Note

  1. Funcția de tăiere FreePascal Arhivată la 15 aprilie 2009 la Wayback Machine  ( accesat  la 25 noiembrie 2009)
  2. Funcția isWhitespace din Java, arhivată la 27 februarie 2009 la Wayback Machine  ( accesat  la 25 noiembrie 2009)
  3. Funcția Trim în Pascal Arhivată la 27 februarie 2009 la Wayback Machine  ( accesat  la 25 noiembrie 2009)
  4. Alex Blewitt. ECMAScript 5  a fost lansat . InfoQ (9 decembrie 2009). Consultat la 10 decembrie 2009. Arhivat din original pe 28 martie 2012.

Link -uri