Les String Tools són un conjunt de funcions de tractament de tires de caràcters que reprodueixen en Java una bona part de les existents en Rexx i NetRexx.
Són funcions que jo no he vist en cap altre llenguatge i que considero que són de gran utilitat. Quan em vaig apropar a Java, aleshores un llenguatge nou, em pensava que potser incorporarien alguna cosa nova pel que fa a tractament de tires de caràcters, però vaig veure que la cosa seguia més o menys com en C. Conforme anava treballant, trobava més a faltar algunes de les funcions de Rexx, així que poc a poc les vaig anar programant en Java. El resultat d'aquella compilació de funcions és el que ara poso a la vostra disposició.
Podeu descarregar les StringTools aquí.
| Funció | Descripció |
|---|---|
| center | Centra una tira en una longitud determinada i permet especificar un caràcter
de farciment (p.e. StringTools.center(" ab ", 10, "-") tornarà "---
ab ---"). |
| changeStr | Reemplaça totes les ocurrències d'una tira en una altra per una tercera
tira (p.e. StringTools.changeStr("1","101100","") tornarà "000" i StringTools.changeStr("1","101100","X"),
"X0XX00") |
| compare | Compara dues tires emprant, si cal, un caràcter de farciment per fer
conincidir les longituds de les tires (p.e. compare('abc','abc') torna
-1, compare('abc','ak') torna 1 i compare('ab--
','ab','-') torna 4) |
| copies | Copia una tira n vegades (p.e. copies('a',3) torna "aaa") |
| countStr | Compta les vegades que una tira apareix en una altra (p.e. countStr("1", "101101") torna 4 i countStr("KK", "J0KKK0") torna 1) |
| delStr | Esborra una subtira de caràcters d'una altra (p.e. delStr("abcd",2) torna "ab" i delStr("abcde",2,2) torna "abe") |
| delWord | Funciona com delStr però amb paraules en comptes de caràcters (p.e. delWord("Now
is the time",2,2) torna "Now time" i delWord("Now is
the time ",3) torna "Now is " ) |
| insert | Insereix una tira en una altra a una posició concreta farcint
o retallant el que calgui (p.e.
|
| lastPos | En realitat crida el mètode lastIndex de la classe String. L'incloc,
només, per compatibilitat amb Rexx. |
| left | Torna una tira alineada a l'esquerra i, si cal, farcint-la amb un caràcter
concret (p.e. left("1234", 2) torna "12", left("1234",
6) torna "1234 " i left("1234", 6, '+') torna "1234++") |
| overlay | Sobreposa una tira en una altra a partir d'una posició concreta (p.e.
overlay(" ","abcdef",2) torna "ab def" i overlay("123","abc",4,6,'+') torna "abc+123+++") |
| reverse | Torna una tira a l'inrevés (p.e. reverse("ABC") torna "CBA") |
| right | Torna una tira alineada a la dreta i, si cal, farcint-la amb un caràcter
concret (p.e. right("abc def",5) torna "c def" i right("12",5,'0'), "00012") |
| space | Espaia les paraules d'una tira de caràcters a n caràcters
i permet especificar el caràcter d'espaiat (p.e. space("a b c") torna "a b c", space("a b c",
2) torna "a b c" i space("a b c",
2, '+'), "a++b++c") |
| strip | Elimina un determinat caràcter de l'inici o el final (o de l'inici i
el final) d'una tira (p.e. strip(" bc ") torna
"bc", strip("++bc++", "T", '+') torna "++bc" i strip("++bc++", "L",
'+'), "bc++") |
| subStr | Torna una subtira. És similar al mètode substring de
la classe String,
però aquest permet farcir la subtira resultant en el cas que sigui més
gran que la inicial (p.e. subStr("abc", 1) torna "bc", subStr("abc",
1, 4) torna "abc " i subStr("abc", 1, 6, '.'),
"bc....") |
| subWord | Funciona com subStr, però a nivell de paraules (p.e. subWord("Now
is the time",2,2) torna "is the" i subWord("Now is the
time",3) torna "the time") |
| translate | Tradueix els caràcters d'una tira en funció d'una taula d'entrada i una altra de sortida especificades com sengles tires. Si no especifiquem les taules, la funció simplement passa a majúscules la tira (p.e. translate("abcdef") torna "ABCDEF", translate("010101", "+", "1") torna "0+0+0+", translate("4123","abcd","1234") torna "dabc" |
| word | Torna l'enèsima paraula d'una tira (p.e. word("Now is the
time",3) torna "the") |
| wordIndex | Torna la posició del primer caràcter de l'enèsima paraula (p.e. wordIndex("Now
is the time",3) torna 7) |
| wordLength | Torna la longitud de l'enèsima paraula (p.e. wordLength("Now
is the time", 4) torna 4) |
| words | Compta el nombre de paraules en una tira, entenent com a paraula una
subtira delimitada per blancs (p.e words("Now is the time") torna 4) |
| xrange | Torna una tira amb els caràcters amb una codificació consecutiva entre
el primer paràmetre i el segon (p.e. xrange('a', 'f') torna "abcdef") |