Trim

Vágás ( angol.  trim  - trim, trim; egyes nyelveken - szalag ) - karakterlánc funkció , amely eltávolítja a kezdő és a záró szóközöket .

Például Pythonban :

'Ez egy teszt' . csík ()

egy karakterláncot ad vissza:

'Ez egy teszt'

A függvény legnépszerűbb változatai trimcsak a sorok elején és végén távolítják el a szóközöket. Ezeket általában ltrimés rtrimrendre, illetve Python nyelv esetén - lstripés rstrip. A C# a TrimStartés -t használja TrimEnd, míg a Common Lisp string-left-trim a és -t használja string-right-trim. A Pascalban és a Java -ban nincsenek beépített opciók , bár a Delphi rendelkezik a TrimLeftés TrimRight. [egy]

Számos függvény trimrendelkezik opcionális paraméterrel, amely megadja az eltávolítandó karakterek listáját. Például a PHP és a Python engedélyezi az ilyen opcionális paramétert, míg a Pascal és a Java nem. string-trimA Common Lisp nyelvi függvényhez paraméterre van szükség ( karaktertáska ). A C++ nyelven a Boost könyvtár a területi beállításnak megfelelően határozza meg a szóköz karaktereket, és lehetőséget kínál egy predikátum paraméterre , amellyel kiválaszthatja, hogy mely karaktereket távolítsa el.

Bizonyos esetekben trimbizonyos eredményt ad vissza, ha a törlési művelet után már nem maradt karakter. Például az Apache Jakarta Project StringUtils- nek van egy függvénye stripToNull, amely nullegy üres karakterláncot ad vissza.

A karakterláncok eltávolításának alternatívája a szóközök normalizálása, ahol a karakterlánc végén lévő szóközök eltávolítása mellett a karakterláncon belüli szóközök sorozatait is egyetlen szóközzel helyettesítik. A szóközök normalizálását Trim()táblázatkezelő alkalmazások (beleértve az Excel , Calc , Gnumeric és Google Docs ), valamint normalize-space()az XSLT és XPath függvények végzik .

Míg a legtöbb algoritmus új (csonka karakterláncot) ad vissza, egyesek az adatstruktúra átalakításával a helyükön módosítják az eredeti karakterláncot. Nevezetesen, a Boost könyvtár lehetővé teszi a „helyi” csonkolást vagy a karakterlánc csonkolt másolatának visszaadását.

A szóköznek nevezett karakterek programozási nyelvek és megvalósításaik között változnak. Például a C nyelvben a szóköz, a tabulátor, a soremelés és a kocsivissza karaktereket hagyományosan ilyenként kezelik, míg a Unicode -ot támogató nyelvek általában minden Unicode szóközt tartalmaznak. Egyes megvalósítások ASCII vezérlőkaraktereket (nem nyomtatható karaktereket) is tartalmaznak a szóközök mellett.

A Java metódusa trimaz escape kódokat szóköznek számítja, míg a isWhitespace()[2] metódus felismeri az unicode szóköz karaktereket .

Alkalmazás

Megvalósítás néhány programozási nyelven:

Használati példa Programozási nyelv
String .Trim([ karakter ]) C# , Visual Basic .NET , Windows PowerShell
std.string.strip( string ) D
(string-trim '(#\Space #\Tab #\Newline) string ) Közönséges Lisp
(string-trim string ) Rendszer
string.trim () Java , JavaScript
Vágás ( karakterlánc ) Pascal [3]
string.strip () Piton
strip( string [, opció , karakter ]) REXX
string: strip( string [, option , char ]) Erlang
string .csík rubin
trim( $string ) PHP
Vágás ( karakterlánc ) QBasic , Visual Basic , Delphi
string trim $string tcl
ALLTRIM ( karakterlánc ) FoxPro

A beépített funkció nélküli nyelveken trim()az összehasonlítható funkcionalitás elérése érdekében gyakran írnak olyan függvényeket, amelyek ugyanazt a feladatot látják el.

Például az awk -ban használhatunk reguláris kifejezéseket ehhez :

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

vagy:

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

A JavaScript az ECMAScript 5 óta képes használni a trim()[4] -et , ezt megelőzően a String objektumokat ki lehetett bővíteni egy prototípussal :

String . prototípus . trim = function () { return this . csere ( /^\s+|\s+$/g , "" ); }

Jegyzetek

  1. FreePascal trim funkció Archivált : 2009. április 15. a Wayback Machine -nél  ( Hozzáférés  : 2009. november 25.)
  2. A Java isWhitespace függvénye archiválva : 2009. február 27. a Wayback Machine -nél  ( Hozzáférés:  2009. november 25.)
  3. Trim funkció a Pascalban Archiválva : 2009. február 27. a Wayback Machine -nél  ( Hozzáférés  : 2009. november 25.)
  4. Alex Blewitt. Megjelent az ECMAScript 5  . InfoQ (2009. december 9.). Letöltve: 2009. december 10. Az eredetiből archiválva : 2012. március 28..

Linkek