Biblioteca Online : ¡La Suscripción ENI por 9,90 € el primer mes!, con el código PRIMER9. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. Desarrollo informático
  3. Cadenas de caracteres
Extrait - Desarrollo informático Aprenda a diseñar antes de programar
Extractos del libro
Desarrollo informático Aprenda a diseñar antes de programar Volver a la página de compra del libro

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

images/204-1.png

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

images/02043b.PNG

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.

images/02043c.PNG

Para terminar, la documentación presenta los métodos:

images/02043d.PNG

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