Cadenas de caracteres
Objetivos del capítulo
El primer objetivo de este capítulo es descubrir y utilizar algunas clases del API Java, especializadas en el tratamiento de los caracteres y cadenas de caracteres. El ejemplo de cursos, muy breve, muestra la utilización de dos de ellas: las clases String y StringBuffer.
El segundo objetivo es la utilización de la documentación de los API Java. El trabajo práctico obliga a una búsqueda en esta documentación.
Clases de tratamiento de las cadenas de caracteres
1. String y StringBuffer
Ya hemos visto la clase String. Java también tiene una clase StringBuffer. Las dos clases ofrecen métodos que permiten los mismos tratamientos.
La diferencia esencial es que cualquier modificación de un objeto String provoca la asignación de un nuevo objeto (el garbage collector se encarga del anterior).
2. Programa de verificación
Este ejemplo realiza una concatenación de cadenas, usando sucesivamente un objeto String y un objeto StringBuffer.
Para un objeto de tipo String, la concatenación se obtiene llamando al método concat() o usando el operador +:
String s = "golondrina";
s = s.concat(" de");
s = s + " chimenea";
Para un objeto de tipo StringBuffer, la concatenación se obtiene llamando al método append():
StringBuffer sb = new StringBuffer("Golondrina");
sb.append(" de chimenea");
A continuación se muestra el código del programa:
public class VerificacionStringStringBuffer
{
public static void main(String argv[])
{
// ----------------------------------------------------------------
// String
// ----------------------------------------------------------------
System.out.println("String:"); ...
Trabajo práctico: String y StringBuffer
1. Objetivos
Escribir algunos algoritmos de gestión de cadenas de caracteres.
Buscar en la documentación de los API Java los métodos apropiados.
2. Tema
A partir de la cadena siguiente: "Utilizo JAVA con brío"
1. |
Transformar las minúsculas en mayúsculas y recíprocamente. |
2. |
Sustituir los espacios por _ (underscore). |
3 |
Sustituir JAVA por C++. |
4 |
Escribir la cadena invertida (ej. ABC --> CBA). |
5 |
Contar cuántas veces se utiliza cada letra. |
Para realizar este ejercicio, es necesario examinar los numerosos métodos de las clases String y StringBuffer. Durante la búsqueda, es posible identificar otras clases de gestión de caracteres...
3. String y StringBuffer, propuesta de corrección
a. Búsqueda de documentación en Javadoc
La documentación de la clase (aquí, String) está en la parte derecha de la pantalla anterior. En ella encontramos:
-
El nombre de la clase.
-
La jerarquía de las clases de las que hereda (como todas las clases, la clase String hereda de la clase Object).
-
Una descripción, a menudo muy detallada, de lo que representa la clase, de los métodos que contiene, ejemplos...
Es interesante leer la descripción, aunque sea rápidamente. No solo incluimos mejor lo que hacemos, sino que podemos encontrar pistas de clases interesantes, relacionadas con el problema que tenemos entre manos.
Ejemplo
En la última fila del extracto de la descripción de la clase String anterior, aparece la clase Character. Su nombre sugiere que un objeto de esta clase se corresponde con un único carácter. Para los tratamientos que afectan a un carácter de una cadena de caracteres, puede ser interesante mirar los métodos que propone la clase Character.
A continuación, la documentación presenta las propiedades públicas (en general, las constantes).
Después está la lista de los constructores.
Para terminar, la documentación presenta los métodos:
Los métodos pueden ser muy numerosos, lo que hace que la búsqueda sea difícil. Por lo tanto, es importante indicar lo que buscamos.
Ejemplo
¿Existe un método que permita acceder a un carácter de la cadena, sabiendo su posición?
-
Un método como este debe devolver un valor de tipo char...