Las String Tools son un conjunto de funciones de tratamiento de tiras de caracteres que reprodcen en Java una buena parte de las existentes en Rexx y NetRexx.
Son funciones que yo no he visto en ningún otro lenguaje y que considero que son de gran utilidad. Cuando me acerqué a Java, entonces un llenguaje nuevo, creía que quizás incorporarían alguna cosa nueva en lo que al procesado de tiras de caracteres se refiere, pero vi que la cosa seguía más o menos como en C. Conforme iba trabajando, más echaba de menos algunas de las funciones de Rexx, así que poco a poco las fui programando en Java. El resultado de aquella compilación de funciones es lo que ahora pongo a su disposición.
Pueden descargar las StringTools aquí.
Función | Descripción |
---|---|
center | Centra una tira en una longitud determinada y permite especificar un caracter de relleno (p.e.StringTools.center(" ab ", 10, "-") devolverá "--- ab ---" ). |
changeStr | Reemplaza todas las apariciones de una tira en otra por una tercera tira (p.e.StringTools.changeStr("1","101100","") devolverá "000" iStringTools.changeStr("1","101100","X") , "X0XX00" ) |
compare | Compara dos tiras usando, si es necesario, un carácter de relleno para hacer conincidir las longitudes de las tiras (p.e. compare('abc','abc') devuelve -1 , compare('abc','ak') devuelve 1 icompare('ab-- ','ab','-') devuelve 4 ) |
copies | Copia una tira n veces (p.e. copies('a',3) devuelve "aaa" ) |
countStr | Cuenta las veces que una tira aparece en otra (p.e. countStr("1", "101101") devuelve 4 y countStr("KK", "J0KKK0") devuelve 1 ) |
delStr | Borra una subtira de caracteres de otra (p.e. delStr("abcd",2) devuelve "ab" idelStr("abcde",2,2) devuelve "abe" ) |
delWord | Funciona como delStr pero con palabras en vez de caracteres (p.e. delWord("Now is the time",2,2) devuelve "Now time" y delWord("Now is the time ",3) devuelve"Now is " ) |
insert | Inserta una tira en otra en una posición concreta rellenando o recortando lo que sea necesario (p.e.insert(" ","abcdef",3) devuelve "abc def" , insert("123","abc",5,6) devuelve"abc 123 " y insert("123","abc",5,6,'+') , "abc++123+++" ) |
lastPos | En realidad invoca el método lastIndex de la clase String . La incluyo, sólo, por compatibilidad con Rexx. |
left | Devuelve una tira alineada a la izquierda y, si es necesario, rellenándola con un carácter concreto (p.e.left("1234", 2) devuelve "12" , left("1234", 6) devuelve "1234 " yleft("1234", 6, '+') devuelve "1234++" ) |
overlay | Solapa una tira en otra a partir de una posición concreta (p.e. overlay(" ","abcdef",2) devuelve "ab def" y overlay("123","abc",4,6,'+') devuelve "abc+123+++" ) |
reverse | Devuelve una tira al revés (p.e. reverse("ABC") devuelve "CBA" ) |
right | Devuelve una tira alineada a la derecha y, si es necesario, rellenándola con un caracter concreto (p.e.right("abc def",5) devuelve "c def" y right("12",5,'0') , "00012" ) |
space | Espacia las palabras de una tira de caracteres a n caracteres y permite especificar el carácter de espaciado (p.e. space("a b c") devuelve "a b c" ,space("a b c", 2) devuelve "a b c" y space("a b c", 2, '+') , "a++b++c" ) |
strip | Elimina un determinado carácter del inicio o el final (o del inicio y el final) de una tira (p.e.strip(" bc ") devuelve "bc" , strip("++bc++", "T", '+') devuelve "++bc" ystrip("++bc++", "L", '+') , "bc++" ) |
subStr | Devuelve una subtira. Es similar al métodosubstring de la clase String , pere éste permite rellenar la subtira resultante en el caso que sea más grande que la inicial (p.e. subStr("abc", 1) devuelve "bc" , subStr("abc", 1, 4) devuelve "abc " y subStr("abc", 1, 6, '.') , "bc...." ) |
subWord | Funciona como subStr , pero a nivell de palabras (p.e. subWord("Now is the time",2,2) devuelve "is the" y subWord("Now is the time",3) devuelve "the time" ) |
translate | Traduce los caracteres de una tira en función de una tabla de entrada y otra de salida especificadas como sendas tiras. Si no especificamos las tablas, la función simplemente pasa a mayúsculas la tira (p.e. translate(«abcdef») devuelve «ABCDEF», translate(«010101», «+», «1») devuelve «0+0+0+», translate(«4123″,»abcd»,»1234″) devuelve «dabc» |
word | Devuelve la enésima palabra de una tira (p.e. word("Now is the time",3) devuelve "the" ) |
wordIndex | Devuelve la posición del primer carácter de la enésima palabra (p.e. wordIndex("Now is the time",3) devuelve 7 ) |
wordLength | Devuelve la longitud de la enésima palabra (p.e. wordLength("Now is the time", 4) devuelve 4 ) |
words | Cuenta el número de palabras en una tira, entendiendo como parlabra una subtira delimitada por blancos (p.e words("Now is the time") devuelve 4 ) |
xrange | Devuelve una tira con los caracteres con una codificación consecutiva entre el primer parámetro y el segundo (p.e. xrange('a', 'f') devuelve "abcdef" ) |