CodeGym /Cursos /JAVA 25 SELF /Cadenas y texto: tipo String, trabajo con cadenas

Cadenas y texto: tipo String, trabajo con cadenas

JAVA 25 SELF
Nivel 2 , Lección 2
Disponible

1. Estudiamos en detalle el tipo String

El tipo String es uno de los más usados en Java. De hecho, quizá el más usado. Es un tipo magnífico, porque en este tipo de variables se puede almacenar texto. Además, a diferencia de los tipos int y double, los objetos de tipo String tienen un montón de funciones (también llamadas métodos) que permiten hacer cosas muy interesantes.

Además, todos los objetos en Java (todos) se pueden convertir al tipo String. O, dicho de forma más correcta, todos los objetos en Java devuelven su representación textual (de cadena). Volveremos muchas veces a este tipo (es muy útil e interesante), pero hoy veremos sus fundamentos.

Creación de variables de tipo String

El tipo String se creó para almacenar cadenas (texto). Para crear en el código una variable capaz de almacenar texto, debes usar el siguiente comando:

String imya;
Creación de una variable de tipo String

Donde imya es el nombre de la variable.

Ejemplos:

Comando Descripción
String name;
Se crea la variable de cadena name
String message;
Se crea la variable de cadena message
String text;
Se crea la variable de cadena text

Al igual que con los tipos int y double, puedes usar una forma abreviada para crear varias variables de tipo String:

String imya1, imya2, imya3;
Creación de variables de tipo String

2. Asignación de valores a variables de tipo String

Para guardar un valor en una variable de tipo String, usa el siguiente comando:

imya = "valor";
Asignación de un valor a una variable de tipo String

Y aquí llega la primera diferencia respecto a los tipos ya estudiados. Todos los valores de tipo String son cadenas de texto y deben ir entre comillas dobles.

Ejemplos:

Comando Nota
String name = "Ana";
La variable name contiene el texto Ana
String city = "New York";
La variable city contiene el texto New York
String message = "Hello!";
La variable message contiene el texto Hello!

3. Inicialización de variables de tipo String

Como en el caso de los tipos int y double, las variables de tipo String se pueden inicializar justo al crearlas. De hecho, esto puede hacerse con todos los tipos en Java. Así que no volveremos a repetirlo.

String imya1 = "valor1", imya2 = "valor2", imya3 = "valor3";
Forma abreviada de creación e inicialización de variables
String name = "Ana", city = "New York", message = "Hello!";
Ejemplo de comando de creación e inicialización de variables

Solo se pueden modificar variables que ya tienen un valor

El compilador de Java se quejará si declaras una variable sin asignarle ningún valor e intentas usarla.

Este código no funcionará:

String name;
System.out.println(name); // La variable name no está inicializada. El programa no compilará.
int a;
a++; // La variable a no está inicializada. El programa no compilará.
double x;
double y = x; // La variable x no está inicializada. El programa no compilará.

4. Concatenación — unir cadenas

Hay algo muy interesante y sencillo que se puede hacer con las cadenas en Java: se pueden unir. Esta operación se llama concatenación. Para que sea fácil de recordar — Con-ca-te-na-ción 😆. A menudo también se la llama «unir cadenas» o incluso «sumar cadenas».

Para unir dos cadenas, usa el signo +. Es muy sencillo:

"cadena1" + "cadena2"
Concatenación de dos cadenas

Ejemplos:

Comando Nota
String name = "Ana" + "Ana";
name contiene la cadena AnaAna
String city = "New York" + "Ana";
city contiene la cadena New YorkAna
String message = "Hello! " + "Ana";
message contiene la cadena Hello! Ana

Y, por supuesto, puedes sumar muchas cadenas a la vez, así como combinar cadenas y variables.

String name = "Ana";                // name contiene la cadena Ana
String city = "New York";           // city contiene la cadena New York
String message = "Hello!" + city + name + city; // message contiene la cadena Hello!New YorkAnaNew York

5. Cadenas vacías

En el último ejemplo se ve que el texto de la variable message no se lee bien, porque le faltan espacios. Para añadir uno o varios espacios, basta con escribirlos en el código y envolverlos entre comillas dobles. Es más simple de lo que parece:

" "
Cadena que contiene un solo espacio

Por cierto, si entre las comillas no dejas nada (escribes dos comillas dobles seguidas), obtendrás lo que se llama «cadena vacía»:

""
Cadena vacía

Por un lado, parece que está ahí; por otro, al mostrarla por pantalla no aparece nada. Y al unirla con otras cadenas no pasa nada. Es una especie de análogo del cero, pero para cadenas.

6. Escape de caracteres especiales en cadenas

Ya sabes que las cadenas se enmarcan entre comillas dobles. Pero ¿qué hacer si necesitas insertar comillas en una cadena? Si escribimos comillas dentro de la cadena, ¿no las tomará el compilador como el final de la cadena?

Exacto. Las tomará. Por eso las comillas dentro del texto se sustituyen por la pareja de símbolos \". Y el código quedará así:

String quote = "Él dijo: \"¡Hola!\"";
System.out.println(quote); // Él dijo: "¡Hola!"

En realidad es un poco más sutil. El símbolo \ se considera especial (de control) dentro de las cadenas. Con él se pueden especificar varios «caracteres no imprimibles» como salto de línea, tabulación, etc. Y para especificar el propio símbolo \, hay que escribirlo dos veces.

Estas son las 4 combinaciones más comunes:

Notación Significado
\n Salto de línea (newline)
\t Tabulación (sangría)
\\ Literal \
\" Comillas dentro de la cadena

Ejemplo:

String multiline = "Línea 1\nLínea 2";
System.out.println(multiline);

Mostrará:

Línea 1
Línea 2

7. Funciones propias de las cadenas

El tipo String tiene funciones propias (también llamadas métodos). Hay muchísimas y facilitan la vida a los programadores. Hoy conocerás algunas de las más sencillas. Ejemplo:

Función Descripción Ejemplo del resultado
str.length()
Longitud de la cadena
"abc".length() → 3
str.toUpperCase()
A mayúsculas
"abc".toUpperCase() → "ABC"
str.toLowerCase()
A minúsculas
"ABC".toLowerCase() → "abc"
str.trim()
Eliminar espacios en los extremos
"  x y  ".trim() → "x y"

Ejemplos de uso de funciones de cadenas

Todas estas funciones se llaman así: variable.método(...).

Determinar la longitud de una cadena:

String name = "Andrés";
int length = name.length();
System.out.println(length); // 6, ya que son 6 letras

Convertir una cadena a mayúsculas o minúsculas:

String original = "Hola";
System.out.println(original.toUpperCase()); // HOLA
System.out.println(original.toLowerCase()); // hola

Eliminar espacios en los extremos (muy útil al introducir texto por teclado):

String messy = "   hello   ";
System.out.println(messy.trim()); // "hello"

Cada una de estas funciones devuelve una nueva cadena; la cadena original no cambia.

Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION