Trim ( angl. trim - trim, trim; v některých jazycích - strip ) - funkce řetězce , která odstraňuje počáteční a koncové mezery .
Například v Pythonu :
'Toto je test' . proužek ()vrátí řetězec:
'Tohle je zkouška'Nejoblíbenější varianty funkce trimodstraňují mezery pouze na začátku a na konci řádků. Obvykle jsou pojmenovány ltrima rtrimrespektive, nebo v případě jazyka Python , - lstripa rstrip. C# používá TrimStarta TrimEnd, zatímco Common Lisp string-left-trim používá a string-right-trim. V Pascalu a Javě nejsou žádné vestavěné možnosti , ačkoli Delphi má TrimLefta TrimRight. [jeden]
Mnoho funkcí trimmá volitelný parametr k určení seznamu znaků, které mají být odstraněny. Například PHP a Python takový volitelný parametr umožňují, zatímco Pascal a Java ne. Funkce string-trimjazyka Common Lisp vyžaduje parametr (nazývaný character-bag ). V C++ knihovna Boost definuje znaky mezer podle národního prostředí a také nabízí možnosti pro parametr predikátu pro výběr znaků, které se mají odstranit.
V některých případech trimvrátí určitý výsledek, pokud po operaci odstranění nezůstanou žádné znaky. Například StringUtils z projektu Apache Jakarta má funkci nazvanou stripToNull, která místo toho vrací nullprázdný řetězec.
Alternativou k odstranění řetězce je normalizace bílých znaků, kde kromě odstranění bílých znaků na koncích řetězce jsou všechny sekvence bílých znaků v řetězci nahrazeny jednou mezerou. Normalizaci mezer provádějí Trim()tabulkové aplikace (včetně Excelu , Calc , Gnumeric a Google Docs ) a funkce normalize-space()v XSLT a XPath .
Zatímco většina algoritmů vrací nový (zkrácený řetězec), některé modifikují původní řetězec na místě transformací datové struktury. Knihovna Boost umožňuje buď zkrácení "na místě", nebo vrácení zkrácené kopie řetězce.
Znaky, které se označují jako mezery, se mezi programovacími jazyky a jejich implementacemi liší. Například v C jsou znaky mezera, tabulátor, odřádkování a návrat vozíku tradičně považovány za takové, zatímco jazyky podporující Unicode zde obecně zahrnují všechny znaky Unicode. Některé implementace obsahují kromě bílých znaků také řídicí znaky ASCII (netisknutelné znaky).
Metoda trimv Javě počítá únikové kódy jako mezery, zatímco metoda isWhitespace()[2] rozpoznává unicode mezery .
Implementace v některých programovacích jazycích:
Příklad použití | Programovací jazyk |
---|---|
String .Trim([ znaky ]) | C# , Visual Basic .NET , Windows PowerShell |
std.string.strip( řetězec ) | D |
(string-trim '(#\Mezerník #\Tab #\Nový řádek) řetězec ) | Lisp obecný |
(string-trim string ) | Systém |
string.trim () | Java , JavaScript |
Oříznout ( řetězec ) | Pascal [3] |
string.strip () | Krajta |
strip( string [, option , char ]) | REXX |
string: strip( string [, option , char ]) | Erlang |
provázek .proužek | rubín |
trim( $string ) | PHP |
Oříznout ( řetězec ) | QBasic , Visual Basic , Delphi |
strunový trim $string | tcl |
ALLTRIM ( řetězec ) | FoxPro |
V jazycích bez vestavěné funkce trim()je pro dosažení srovnatelné funkčnosti běžné psát funkce, které provádějí stejný úkol.
Například v awk k tomu můžete použít regulární výrazy :
ltrim(v) = gsub(/^[ \t\r]+/, "", v) rtrim(v) = gsub(/[ \t\r]+$/, "", v) trim(v) = ltrim(v); rtrim(v)nebo:
function ltrim(s) { sub(/^[ \t\r]+/, "", s); vrátit s} function rtrim(s) { sub(/[ \t\r]+$/, "", s); vrátit s} function trim(s) { return rtrim(ltrim(s)); }JavaScript byl schopen používat trim()[4] od ECMAScript 5, předtím bylo možné objekty String rozšířit o prototyp :
Řetězec . prototyp . trim = function () { return this . nahradit ( /^\s+|\s+$/g , "" ); }