Trimme

Trim ( eng.  trim  - trim, trim; på nogle sprog - strip ) - strengfunktion , der fjerner førende og efterfølgende mellemrum .

For eksempel i Python :

'Dette er en test' . strimmel ()

returnerer en streng:

'Dette er en test'

De mest populære varianter af funktionen trimfjerner kun mellemrum i begyndelsen og slutningen af ​​linjer. De er normalt navngivet ltrimog rtrimhenholdsvis, eller i tilfælde af Python-sproget , - lstripog rstrip. C# bruger TrimStartog TrimEnd, mens Common Lisp string-left-trim bruger og string-right-trim. Der er ingen indbyggede muligheder i Pascal og Java , selvom Delphi har TrimLeftog TrimRight. [en]

Mange funktioner trimhar en valgfri parameter til at angive en liste over tegn, der skal fjernes. For eksempel tillader PHP og Python en sådan valgfri parameter, mens Pascal og Java ikke gør det. string-trimEn Common Lisp-sprogfunktion kræver en parameter (kaldet character-bag ). I C++ definerer Boost-biblioteket mellemrumstegn i henhold til lokaliteten og tilbyder også muligheder for en prædikatparameter til at vælge, hvilke tegn der skal fjernes.

I nogle tilfælde trimreturnerer det et bestemt resultat, hvis der ikke er nogen tegn tilbage efter sletningen. For eksempel har StringUtils fra Apache Jakarta Project en funktion kaldet stripToNull, som returnerer nullen tom streng i stedet.

Et alternativ til at fjerne en streng er normalisering af hvide mellemrum, hvor ud over at fjerne mellemrumstegn i enderne af en streng, også erstattes eventuelle sekvenser af mellemrum i en streng med et enkelt mellemrum. Whitespace-normalisering udføres Trim()af regnearksapplikationer (herunder Excel , Calc , Gnumeric og Google Docs ), og en funktion normalize-space()i XSLT og XPath .

Mens de fleste algoritmer returnerer en ny (trunkeret streng), ændrer nogle den originale streng på stedet ved at transformere datastrukturen. Navnlig tillader Boost -biblioteket enten "in-place" trunkering eller returnering af en trunkeret kopi af strengen.

Tegnene, der omtales som mellemrum, varierer mellem programmeringssprog og deres implementeringer. For eksempel i C behandles mellemrum, tabulator, linjeskift og vognretur-tegn traditionelt som sådan, mens Unicode -understøttende sprog generelt inkluderer alle Unicode-mellemrumstegn her. Nogle implementeringer inkluderer også ASCII -kontroltegn (tegn, der ikke kan udskrives) ud over blanktegn.

Metoden trimi Java tæller escape-koder som mellemrum, mens metoden isWhitespace()[2] genkender unicode- mellemrumstegn .

Ansøgning

Implementering i nogle programmeringssprog:

Eksempel på brug Programmeringssprog
String .Trim([ tegn ]) C# , Visual Basic .NET , Windows PowerShell
std.string.strip( string ) D
(string-trim '(#\Space #\Tab #\Newline) string ) Almindelig Lisp
(string-trim streng ) Ordning
string.trim () Java , JavaScript
Trim ( streng ) Pascal [3]
string.strip () Python
strip ( streng [, option , char ]) REXX
string: strip( string [, option , char ]) Erlang
snor .strimmel rubin
trim( $string ) PHP
Trim ( streng ) QBasic , Visual Basic , Delphi
string trim $string tcl
ALLTRIM( streng ) FoxPro

På sprog uden indbygget funktion trim()er det for at opnå sammenlignelig funktionalitet almindeligt at skrive funktioner, der udfører den samme opgave.

For eksempel, i awk kan du bruge regulære udtryk til dette :

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

eller:

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

JavaScript har været i stand til at bruge trim()[4] siden ECMAScript 5, før det kunne String-objekter udvides med en prototype :

String . prototype . trim = funktion () { returner dette . erstatte ( /^\s+|\s+$/g , "" ); }

Noter

  1. FreePascal trim funktion Arkiveret 15. april 2009 på Wayback Machine  ( Åbent  25. november 2009)
  2. Javas isWhitespace-funktion blev arkiveret 27. februar 2009 på Wayback Machine  ( Åbent  25. november 2009)
  3. Trimfunktion i Pascal Arkiveret 27. februar 2009 på Wayback Machine  ( Åbnet  25. november 2009)
  4. Alex Blewitt. ECMAScript 5  udgivet . InfoQ (9. december 2009). Hentet 10. december 2009. Arkiveret fra originalen 28. marts 2012.

Links