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 .
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 , "" ); }