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