StringTools – Descripció

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 seva disposició.

Poden descarregar les StringTools aquí.

Descripció breu de les funcions de StringTools
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" iStringTools.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" idelStr("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. insert(" ","abcdef",3) torna "abc def", insert("123","abc",5,6) torna "abc  123   "i insert("123","abc",5,6,'+'), "abc++123+++")
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" istrip("++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")