## Las Clases String y StringBuffer

El paquete java.lang contiene dos clases de cadenas: String y StringBuffer. Ya hemos visto la clase String en varias ocasiones en este tutorial. La clase String se utiliza cuando se trabaja con cadenas que no pueden cambiar. Por otro lado, StringBuffer, se utiliza cuando se quiere manipular el contenido de una cadena.

El método reverseIt() de la siguiente clase utiliza las clases String y StringBuffer para invertir los caracteres de una cadena. Si tenemos una lista de palabras, se puede utilizar este método en conjunción de un pequeño programa para crear una lista de palabras rítmicas (una lista de palabras ordenadas por las silabas finales). Sólo se tienen que invertir las cadenas de la lista, ordenar la lista e invertir las cadenas otra vez.

    class ReverseString {
        public static String reverseIt(String source) {
            int i, len = source.length();
            StringBuffer dest = new StringBuffer(len);

            for (i = (len - 1); i >= 0; i--) {
                dest.append(source.charAt(i));
            }
            return dest.toString();
        }
    }

El método reverseIt() acepta un argumento del tipo String llamado source que contiene la cadena que se va a invertir. El método crea un StringBuffer, dest, con el mismo tamaño que source. Luego hace un bucle inverso sobre los caracteres de source y los añade a dest, con lo que se invierte la cadena. Finalmente el método convierte dest, de StringBuffer a String.

Además de iluminar las diferencias entre String y StringBuffer, esta lección ilustra varias caracteristicas de las clases String y StringBuffer: Creacción de Strings y StringBuffers, utilizar métodos accesores para obtener información sobre String o StringBuffer, modificar un StringBuffer y convertir un tipo String a otro.

Ozito