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í.
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" ) |