Java: Una introducción a las cadenas

Una cadena

básicamente es una matriz de caracteres. Las cadenas se utilizan en casi cualquier lenguaje de programación. El lenguaje de programación Java proporciona una clase envolvente String que es útil para crear y manipular cadenas.

  • Crear cadenas
  • Qué puedes hacer con las cadenas
  • Modificar cadenas

Crear cadenas

La forma más sencilla de crear una Cadena es utilizar la siguiente sintaxis:

Cadena hola = "¡Hola Mundo!";

"¡Hola Mundo!" es una cadena literal que se asigna a la variable quote. Esta línea de código equivale a crear una matriz de caracteres y llamar con ella al constructor de cadenas:¡

char[] hello = { 'H', 'e', 'l', 'l', 'o', '', 'W' , 'o', 'r', 'l', 'd', '!'};

Cadena holaCadena = new String(hola);

De hecho, cada vez que el compilador lee un literal de cadena encerrado entre comillas en su código, automáticamente creará un objeto String para esa secuencia de caracteres.

Cadena concatenada = "ABC" + "DEF"; //"ABCDEF"

Esto significa que la declaración anterior dará lugar a tres objetos String creados. Sin embargo, las dos cadenas que se utilizan para crear el concatenado se descartarán inmediatamente.

Tenga en cuenta: Aunque la clase String es una envoltura para la matriz de caracteres subyacente, no se puede acceder a ella directamente por ningún medio. Las cadenas son inmutables. Esto significa que no se puede modificar directamente un objeto String. hola y concatenado en este caso sólo son referencias a objetos String en algún lugar de la memoria. Por lo tanto, puede cambiarlas como cualquier otra variable. Pero cada vez que se modifica el contenido de una referencia String, se crea una nueva String con el contenido deseado. Esto puede causar algunos problemas cuando se quiere modificar una cadena muy a menudo, lo que podría ser el caso si se quiere concatenar muchas cadenas juntas. En estos casos, puedes considerar el uso de un StringBuilder para aumentar el rendimiento

Qué puedes hacer con Strings

Como ya sabrás, puedes imprimir una String en la consola utilizando los métodos de impresión estándar como println.

Cadena hola = "¡Hola Mundo!";
System.out.println(hola)

A menudo es importante saber cuántos caracteres contiene la cadena - o en otras palabras - determinar la longitud de la cadena. Esto se puede conseguir con el método longitud.

Cadena hola = "¡Hola Mundo!";
int longitud = hola.longitud(); //Asignar 12 a longitud

Como nuestras variables de cadena son sólo referencias, no se pueden comparar con los operadores lógicos como == o !=. En su lugar, puede utilizar funciones predefinidas de la clase String.

String s1 = "Hello";
String s2 = "HELLO";

s1.equals(s2); // false
s1.equalsIgnoreCase(s2); // true
s1.compareTo(s2); // > 0 porque 'e' viene después de 'E'

La función equals compara las dos cadenas y devuelve un valor booleano si las cadenas son iguales o no. equalsIgnoreCase se puede utilizar si la mayúscula de las dos cadenas no importa. compareTo no sólo puede utilizarse para comprobar, si dos Cadenas son iguales, sino también para ordenarlas lexicográficamente. La función devolverá 0 si ambas cadenas son iguales, un entero negativo si la primera cadena es "menor" y un entero positivo si la cadena es "mayor".

Modificación de cadenas

Las cadenas tienen algunos métodos predefinidos para modificarlas. Tenga en cuenta que cada vez que se llama a estas funciones,se crea una nueva cadena que debe asignarse a una variable.

Cadena s1 = "Hola";
Cadena s2;
s2 = s1.toLowerCase(); // "hola"
s2 = s1.String toUpperCase(); // "HELLO"
s2 = s1.String trim(); // "Hola" (elimina los espacios en blanco iniciales y finales)
s2 = s1.String replace('e', 'a'); // "Hola"
char[] charArray = s1.toCharArray(); // crea un array de chars a partir de s1

Si decides crear un array de chars a partir del String, puedes realizar cualquier cambio en él y ponerlo en un nuevo objeto String. Este es el método más sencillo para hacer una modificación personalizada a una Cadena.