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