StringTools – Descripción

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

Descripción breve de las funciones de StringTools
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")