36.    String (clase) java.lang.String

Los “String” son objetos de java con una sintaxis especialmente cómoda para representar cadenas de caracteres. Los caracteres se codifican usando Unicode.

Java permite escribir directamente cadenas entre comillas.

String autor = "Miguel de Cervantes";

String colega = "Doménikos Theotokópoulos, "El Greco"";

Para incluir el carácter comillas dobles en una cadena, escriba """.

Sobre cadenas se define la operación de concatenar:

String nombre = "Miguel";

String apellido = "Muñoz";

String colega = nombre + " " + apellido;

La clase String define muchos métodos interesantes para hacer programas:

int length()

longitud: número de caracteres

boolean equals(String b)

determina si la cadena contiene los mismos caracteres que la cadena “b”

boolean equalsIgnoreCase(String b)

determina si la cadena contiene los mismo caracteres que la cadena “b”, independientemente de que estén en mayúsculas o minúsculas

int compareTo(String b)

compara contra la cadena “b”, devolviendo

·         un valor negativo si la cadena es anterior a “b”;

·         cero (0) si la cadena es igual a “b”;

·         un valor positivo si la cadena es posterior a “b”.

En las comparaciones se usa el código Unicode, lo que no siempre responde al orden lexicográfico (de diccionario).

String trim()

crea un nuevo objeto eliminado el espacio en blanco que pudiera haber al principio o al final

char charAt(int posicion)

extrae en carácter en la posición indicada

char[] toCharArray()

conviertr la cadena en un array de caracteres

String substring(int a, int z)

extrae la sub-cadena entre las posiciones a y z

String substring(int desde)

extrae la sub-cadena desde la posición indicada

int indexOf(char carácter)

int indexOf(String cadena)

indica en qué posición se encuentra el carácter (o cadena) indicado por primera vez, buscando desde el principio

int lastIndexOf(char carácter)

int lastIndexOf(String cadena)

indica en qué posición se encuentra el carácter (o cadena) indicado por primera vez, buscando desde el final

boolean startsWith(String prefijo)

dice si la cadena comienza con el prefijo indicado

boolean endsWith(String sufijo)

dice si la cadena termina con el sufijo indicado

String[] split(String patron)

fragmenta la cadena en varias subcadenas utilizando el patrón indicado como separador

código

resultado

“Miguel”.length()

6

“Miguel”.equals(“Miguel”)

true

“Miguel”.equals(“miguel”)

false

“Miguel”.equalsIgnoreCase(“miguel”)

true

“Miguel”.compareTo(“Saturnino”)

-6 (cualquier entero < 0)

“Miguel”.compareTo(“Miguel”)

0

“Miguel”.compareTo(“Michelin”)

4 (cualquier entero > 0)

“Miguel”.charAt(1)

'i'

“Miguel”.charAt(4)

'e'

“Miguel”.toCharArray()

{ 'M', 'i', 'g', 'u', 'e', 'l' }

“Miguel”.substring(1, 4)

“igu”

“Miguel.substring(1)

“iguel”

“tragaldabas”.indexOf('a')

2

“tragaldabas”.lasIndexOf('a')

9

“tragaldabas”.startsWith(“tragón”)

false

“tragaldabas”.endsWith(“dabas”)

true

“tragaldabas”.split(“a”)

{ “tr”, “g”, “ld”, “b”, “s” }

 

Los objetos String son inmutables. No hay forma de modificarlos una vez construidos. Por ello algunas operaciones sobre Strings son en extremo ineficientes debido a la creación de objetos que se van a destruir a continuación. Por ello es útil la clase StringBuilder que permite disponer de un solo objeto que se puede modificar.

Las comparaciones entre String se limitan a usar el orden numérico de los códigos Unicode, lo que a veces choca con el orden al que estamos acostumbrados en los diccionarios, el orden lexicográfico, que depende de cada idioma. Para realizar comparaciones usando el orden lexicográfico propio de cada idioma, véase “Collator”.

Temas relacionados

Las Bibliotecas de Java
Saltos de línea