En la línea 15 se utiliza el método 

length

 de 

String

 para determinar el número de caracteres en la cadena 

s1

. Al igual que los arreglos, las cadenas conocen su propia longitud. Sin embargo, a diferencia de los arreglos, 

no podemos acceder a la longitud de una cadena mediante un campo 

length

; en vez de ello, debemos llamar al 

método 

length

 del objeto 

String

.

En las líneas 20 y 21 se imprimen los caracteres de la cadena 

s1

 en orden inverso (y separados por espacios). 

El método 

charAt

 de 

String

 (línea 21) devuelve el carácter ubicado en una posición específi ca en la cadena. El 

método 

charAt

 recibe un argumento entero que se utiliza como el índice, y devuelve el carácter en esa posición. 

Al igual que los arreglos, se considera que el primer elemento de una cadena está en la posición 0.

En la línea 24 se utiliza el método 

getChars

 de 

String

 para copiar los caracteres de una cadena en un arreglo 

de caracteres. El primer argumento es el índice inicial en la cadena, a partir del cual se van a copiar los caracteres. 
El segundo argumento es el índice que está una posición más adelante del último carácter que se va a copiar de 
la cadena. El tercer argumento es el arreglo de caracteres en el que se van a copiar los caracteres. El último argu-
mento es el índice inicial en donde se van a colocar los caracteres copiados en el arreglo de caracteres de destino. 
A continuación, en la línea 28 se imprime el contenido del arreglo 

char

, un carácter a la vez.

30.3.3 Comparación entre cadenas

En el capítulo 7 hablamos sobre el ordenamiento y la búsqueda en los arreglos. Con frecuencia, la información 
que se va a ordenar o buscar consiste en cadenas que deben compararse para determinar el orden o para deter-
minar si una cadena aparece en un arreglo (u otra colección). La clase 

String

 proporciona varios métodos para 

comparar cadenas, los cuales mostraremos en los siguientes dos ejemplos.

Para comprender lo que signifi ca que una cadena sea mayor o menor que otra, considere el proceso de alfabe-

tizar una serie de apellidos. Sin duda usted colocaría a “Jones” antes que “Smith”, ya que en el alfabeto la primera 
letra de “Jones” viene antes que la primera letra de “Smith” en el alfabeto. Pero el alfabeto es algo más que una lista 
de 26 letras; es un conjunto ordenado de caracteres. Cada letra ocupa una posición específi ca dentro del conjunto. 
Z es más que una letra del alfabeto; es en específi co la letra número veintiséis del alfabeto.

¿Cómo sabe la computadora que una letra va antes que otra? Todos los caracteres se representan en la compu-

tadora como códigos numéricos (vea el apéndice B). Cuando la computadora compara cadenas, en realidad com-
para los códigos numéricos de los caracteres en las cadenas.

En la fi gura 30.3 se muestran los métodos 

equals

equalsIgnoreCase

compareTo

 y 

regionMatches

 de 

String

, y se muestra el uso del operador de igualdad 

==

 para comparar objetos 

String

.

Figura 30.2

  |  Métodos de manipulación de caracteres de la clase 

String

. (Parte 2 de 2).

 16 
 17  

 

// itera a través de los caracteres en s1 con charAt y muestra la cadena invertida

18   

System.out.print(

"\nLa cadena invertida es: "

 );

 19 
 20  

 

for

 ( 

int

 cuenta = s1.length() - 

1

; cuenta >= 

0

; cuenta-- )

 

21    

System.out.printf(

"%s "

, s1.charAt( cuenta) );

 22 
 23  

 

// copia los caracteres de la cadena a arregloChar

24   

s1.getChars(

0

,

4

, arregloChar, 

0

 );

 25  

 

System.out.print(

"\nEl arreglo de caracteres es: "

 );

 26 
 27  

 

for

 ( 

char

 caracter : arregloChar )

 

28    

System.out.print( caracter );

 29 
 30  

 

System.out.println();

 31  

}

// fin de main

32

}

// fin de la clase VariosString

s1: hola a todos
Longitud de s1: 12
La cadena invertida es: s o d o t   a   a l o h
El arreglo de caracteres es: hola

30.3 La 

clase 

String

1301

30_MAQ_CAP_30_DEITEL.indd1301

5/8/084:22:31PM