Trimmata

Trim ( eng.  trim  - trim, trim; joissakin kielissä - strip ) - merkkijonotoiminto , joka poistaa alku- ja loppuvälit .

Esimerkiksi Pythonissa :

"Tämä on testi" . nauhat ()

palauttaa merkkijonon:

'Tämä on testi'

Toiminnon suosituimmat versiot trimpoistavat välilyönnit vain rivien alussa ja lopussa. Ne on yleensä nimetty ltrimja rtrimvastaavasti, tai Python-kielen tapauksessa , - lstripja rstrip. C# käyttää TrimStartja TrimEnd, kun taas Common Lisp string-left-trim käyttää ja string-right-trim. Pascalissa ja Javassa ei ole sisäänrakennettuja vaihtoehtoja , vaikka Delphissä on TrimLeftja TrimRight. [yksi]

Monissa funktioissa trimon valinnainen parametri poistettavien merkkien luettelon määrittämiseksi. Esimerkiksi PHP ja Python sallivat tällaisen valinnaisen parametrin, kun taas Pascal ja Java eivät. string-trimCommon Lisp -kielen toiminto vaatii parametrin (nimeltään merkkipussi ). C++ :ssa Boost-kirjasto määrittelee välilyönnit alueen mukaan ja tarjoaa myös vaihtoehtoja predikaattiparametrille , jolla valitaan poistettavat merkit .

Joissakin tapauksissa trimse palauttaa tietyn tuloksen, jos poistotoiminnon jälkeen ei ole jäljellä merkkejä. Esimerkiksi Apache Jakarta Projectin StringUtilsissa on funktio nimeltä stripToNull, joka palauttaa nullsen sijaan tyhjän merkkijonon.

Vaihtoehto merkkijonon poistamiselle on välilyöntien normalisointi, jossa merkkijonon päiden välilyöntien poistamisen lisäksi kaikki merkkijonon välilyönnit korvataan yhdellä välilyönnillä. Välilyöntien normalisoinnin suorittavat Trim()taulukkolaskentasovellukset (mukaan lukien Excel , Calc , Gnumeric ja Google Docs ) sekä funktio XSLTnormalize-space() :ssä ja XPathissa .

Vaikka useimmat algoritmit palauttavat uuden (katkaistun merkkijonon), jotkut muokkaavat alkuperäistä merkkijonoa muuttamalla tietorakennetta. Erityisesti Boost -kirjasto sallii joko "paikallisesti" katkaisun tai merkkijonon katkaistun kopion palauttamisen.

Välilyönneiksi kutsutut merkit vaihtelevat ohjelmointikielten ja niiden toteutusten välillä. Esimerkiksi C:ssä välilyönti-, sarkain-, rivinvaihto- ja rivinvaihtomerkkejä käsitellään perinteisesti sellaisina, kun taas Unicodea tukevat kielet sisältävät yleensä kaikki Unicode-välilyönnit. Jotkut toteutukset sisältävät myös ASCII -ohjausmerkkejä (ei-tulostettavia merkkejä) välilyöntien lisäksi.

Java- menetelmä trimlaskee erotuskoodit välilyönneiksi, kun taas menetelmä isWhitespace()[2] tunnistaa unicode - välilyönnit .

Sovellus

Toteutus joillakin ohjelmointikielillä:

Käyttöesimerkki Ohjelmointikieli
Merkkijono .Trim([ merkkiä ]) C# , Visual Basic .NET , Windows PowerShell
std.string.strip( merkkijono ) D
(string-trim '(#\Space #\Tab #\Newline) merkkijono ) Yhteinen Lisp
( merkkijono ) Kaavio
string.trim () Java , JavaScript
Leikkaa ( merkkijono ) Pascal [3]
string.strip () Python
strip( merkkijono [, vaihtoehto , merkki ]) REXX
merkkijono: strip( merkkijono [, vaihtoehto , merkki ]) Erlang
merkkijono .nauha rubiini
trimmaa ( $string ) PHP
Leikkaa ( merkkijono ) QBasic , Visual Basic , Delphi
merkkijono trimmaus $merkkijono tcl
ALLTRIM( merkkijono ) FoxPro

Kieleillä, joissa ei ole sisäänrakennettua trim()toimintoa, on yleistä kirjoittaa toimintoja, jotka suorittavat saman tehtävän, jotta saavutetaan vertailukelpoinen toimivuus.

Esimerkiksi awk :ssa voit käyttää säännöllisiä lausekkeita tähän :

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

tai:

function ltrim(s) { sub(/^[ \t\r]+/, "", s); palauta s} function rtrim(s) { sub(/[ \t\r]+$/, "", s); palauta s} funktio trimma(t) { return rtrim(lttrim(s)); }

JavaScript on pystynyt käyttämään trim()[4] : ää ECMAScript 5:stä lähtien , ennen sitä merkkijono-objekteja voitiin laajentaa prototyypillä :

merkkijono . prototyyppi . trim = function () { palauta tämä . korvaa ( /^\s+|\s+$/g , "" ); }

Muistiinpanot

  1. FreePascal-trimmaustoiminto Arkistoitu 15. huhtikuuta 2009 Wayback Machinessa  ( Käytetty  25. marraskuuta 2009)
  2. Javan isWhitespace Function Arkistoitu 27. helmikuuta 2009 Wayback Machinessa  ( Käytetty  25. marraskuuta 2009)
  3. Trim-toiminto Pascalissa Arkistoitu 27. helmikuuta 2009 Wayback Machinessa  ( Käytetty  25. marraskuuta 2009)
  4. Alex Blewitt. ECMAScript 5  julkaistiin . InfoQ (9. joulukuuta 2009). Haettu 10. joulukuuta 2009. Arkistoitu alkuperäisestä 28. maaliskuuta 2012.

Linkit