Concatenar cadenas

<< Operar con caracteres Operaciones lógicas >>

Para concatenar texto, podemos utilizar el operador '+'.

System.out.println("Hola " + "mundo!"); // Imprime "Hola mundo!"

Algunas de las partes del texto a concatenar suelen estar almacenadas en variables. Si alguna variable o valor a concatenar no es del tipo cadena, será transformada a string automáticamente antes de concatenarla al resto del texto.

String nombre = "Juan";
int edad = 25;
System.out.println(nombre + " tiene " + edad + " años"); //Juan tiene 25 años

¡Cuidado!: Si intentamos concatenar 2 variables que contienen valores numéricos, estos se sumarán, ya que se usa el mismo símbolo que para la operación de sumar números. La solución sería transformar al menos una de ellas a string.

int prefijo = 34;
int telefono = 923423243;
System.out.println(prefijo + telefono); // 923423277 (suma)
System.out.println(String.valueOf(prefijo) + telefono); //34923423243(concatena)

Otro método para concatenar variables en un texto es usar la sustitución de variables. Para ello debemos usar printf en lugar de println, y en los lugares donde queremos sustituir variables, pondremos %s para cadenas, %d para un número entero y %f para un número decimal. Finalmente se pondrá la lista de variables (u operaciones) en el mismo orden separadas por coma. 

A diferencia del métod println, este no añade un salto de línea al final después de imprimir, por lo que debemos añadirlo manualmente ('\n').

String nombre = "Juan";
int edad = 25;
System.out.printf("%s tiene %d años\n", nombre, edad); //Juan tiene 25 años

Si en lugar de imprimir por consola como hace printf, queremos asignar la cadena resultante a otra variable, debemos usar String.format

String frase = String.format("%s tiene %d años", nombre, edad);
System.out.println(frase);

Strings Multilínea (Text blocks)

Desde hace (Java 15) poco podemos crear cadenas de varias líneas sin necesidad de concatenar manualmente el carácter de salto de línea '\n'.  Esto es lo que se conoce como text block.

Para crear un string multilínea o bloque de texto, utilizamos una triple comilla doble (""") tanto para iniciar como para finalizar la cadena.  De esta manera nos interpretará los saltos de línea dentro de la cadena directamente.

System.out.println("""
MENU
------------------------
    1) Ver usuarios
    2) Añadir usuario
    3) Borrar usuario
    0) Salir
""");

Este tipo de cadenas, se puede utilizar en combinación con métodos como println, printf, String.format, etc. Aunque también tienen un método llamado formatted que hace el mismo papel que String.format.

System.out.println("""
DATOS
-------------------------
Nombre: %s
Edad: %d años
""".formatted(nombre, edad));

<< Operar con caracteres Operaciones lógicas >>