Trim

Trim ( eng.  trim  - trim, trim; på vissa språk - strip ) - strängfunktion som tar bort inledande och efterföljande mellanslag .

Till exempel, i Python :

" Det här är ett test " . remsa ()

returnerar en sträng:

'Detta är ett prov'

De mest populära varianterna av funktionen trimtar bort blanksteg endast i början och slutet av rader. De är vanligtvis namngivna ltrimoch rtrimrespektive, eller i fallet Python-språket , - lstripoch rstrip. C# använder TrimStartoch TrimEnd, medan Common Lisp string-left-trim använder och string-right-trim. Det finns inga inbyggda alternativ i Pascal och Java , även om Delphi har TrimLeftoch TrimRight. [ett]

Många funktioner trimhar en valfri parameter för att ange en lista med tecken som ska tas bort. Till exempel tillåter PHP och Python en sådan valfri parameter, medan Pascal och Java inte gör det. string-trimEn Common Lisp-språkfunktion kräver en parameter (kallad character-bag ). I C++ definierar Boost-biblioteket blankstegstecken enligt lokalen och erbjuder även alternativ för en predikatparameter för att välja vilka tecken som ska tas bort.

I vissa fall trimreturnerar det ett visst resultat om det inte finns några tecken kvar efter borttagningen. Till exempel har StringUtils från Apache Jakarta Project en funktion som heter stripToNull, som returnerar nullen tom sträng istället.

Ett alternativ till att ta bort en sträng är blankstegsnormalisering, där förutom att ta bort blankstegstecken i ändarna av en sträng, ersätts även alla sekvenser av blanksteg i en sträng med ett enda blanksteg. Normalisering av blanksteg utförs Trim()av kalkylprogram (inklusive Excel , Calc , Gnumeric och Google Docs ), och en funktion normalize-space()i XSLT och XPath .

Medan de flesta algoritmer returnerar en ny (trunkerad sträng), ändrar vissa den ursprungliga strängen på plats genom att transformera datastrukturen. Noterbart är att Boost -biblioteket tillåter antingen trunkering på plats eller att returnera en trunkerad kopia av strängen.

Tecknen som kallas mellanslag varierar mellan programmeringsspråk och deras implementeringar. Till exempel, i C behandlas mellanslag, tabb, radmatning och vagnreturtecken traditionellt som sådana, medan Unicode -stödjande språk i allmänhet inkluderar alla Unicode-blanksteg här. Vissa implementeringar inkluderar även ASCII -kontrolltecken (ej utskrivbara tecken) förutom blanksteg.

Metoden trimi Java räknar escape-koder som blanksteg, medan metoden isWhitespace()[2] känner igen unicode -blankstegstecken .

Applikation

Implementering i vissa programmeringsspråk:

Användningsexempel Programmeringsspråk
String .Trim([ chars ]) C# , Visual Basic .NET , Windows PowerShell
std.string.strip( string ) D
(string-trim '(#\Space #\Tab #\Newline) string ) Vanlig Lisp
( strängtrimningssträng ) Schema
string.trim () Java , JavaScript
Trim ( sträng ) Pascal [3]
string.strip () Pytonorm
strip( string [, option , char ]) REXX
string: strip( string [, option , char ]) Erlang
sträng .strip rubin
trim( $string ) PHP
Trim ( sträng ) QBasic , Visual Basic , Delphi
strängtrim $sträng tcl
ALLTRIM( String ) FoxPro

I språk utan inbyggd trim()funktion är det vanligt att skriva funktioner som utför samma uppgift för att uppnå jämförbar funktionalitet.

Till exempel, i awk kan du använda reguljära uttryck för detta :

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

eller:

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

JavaScript har kunnat använda trim()[4] sedan ECMAScript 5, innan dess kunde String-objekt utökas med en prototyp :

Sträng . prototyp . trim = function () { returnera detta . ersätt ( /^\s+|\s+$/g , "" ); }

Anteckningar

  1. FreePascal trimfunktion Arkiverad 15 april 2009 på Wayback Machine  ( Åtkomst  25 november 2009)
  2. Javas isWhitespace-funktion arkiverad 27 februari 2009 på Wayback Machine  ( Åtkomst  25 november 2009)
  3. Trimfunktion i Pascal Arkiverad 27 februari 2009 på Wayback Machine  ( Åtkomst  25 november 2009)
  4. Alex Blewitt. ECMAScript 5  släppt . InfoQ (9 december 2009). Hämtad 10 december 2009. Arkiverad från originalet 28 mars 2012.

Länkar