Cómo concatenar cadenas o String en Java

Es muy probable que en algún momento necesites unir 2 o más String para generar una nueva cadena. También es posible que necesites unir cadenas con otros datos primitivos, como enteros o reales para generar una nueva cadena.

Indistintamente de lo que estés buscando, te voy a enseñar dos formas de conseguirlo:

Concatenar cadenas con el operador +
Concatenar cadenas con el método concat() de la clase String

Concatenar cadenas con el operador +

La primera opción y, muchas veces la más rápida, es utilizar el operador +

Si has utilizado este operador con anterioridad con tipos primitivos sabrás que devuelve la suma aritmética de dos operandos. Por ejemplo: 5 + 2 devuelve 7.

En el caso de las cadenas el funcionamiento es diferente. Recuerda que las cadenas no son tipos primitivos, sino objetos.

Cuando utilizas el operador + con dos String el resultado es un nuevo String con los dos anteriores concatenados. Mira el siguiente ejemplo para entenderlo mejor:

String cadena1 = "Hola";
String cadena2 = "Mundo";
        
String resultado = cadena1 + cadena2;
        
System.out.println(resultado);

Fíjate que hay dos cadenas declaradas: cadena1 y cadena2 (líneas 1 y 2). Ambas son variables de tipo String. La primera tiene valor “Hola” y la segunda tiene valor “Mundo”.

En la línea 4 estoy utilizando el operador + con ambos objetos: cadena1 + cadena2. Esa instrucción concatena las dos cadenas y la nueva cadena generada se almacena en la variable resultado.

Si ejecutas ese código verás que la salida generada es «HolaMundo». Las dos cadenas se han concatenado para generar una nueva.

¿Quieres un espacio entre “Hola” y “Mundo”? Sin problema. Hazlo así:

String resultado = cadena1 + “ “ + cadena2;

El espacio también es una cadena. Simplemente concaténalo donde lo necesites utilizando de nuevo el operador +.

Puedes concatenar todas las cadenas que quieras.

Vamos a ver ahora otro caso en el que también estén implicados datos primitivos. Mira el siguiente ejemplo:

int num1 = 5;
int num2 = 4;
int suma = num1 + num2;

String resultado = "El resultado es: " + suma;

 System.out.println(resultado);

Las tres primeras instrucciones simplemente suman dos números de tipo int y almacenan el resultado en la variable suma que también es de tipo int. Como puedes comprobar aquí también estoy utilizando el operador +, pero en este caso el resultado será la suma aritmética puesto que num1 y num2 no son cadenas. La variable suma toma valor 9 (resultado de 5 + 4).

Ahora es donde viene la parte interesante. En la línea 5 estoy utilizando el operador + con una cadena (“El resultado es: “) y con un entero (variable suma). ¿Qué ocurre ahora?

Como uno de los dos operandos es una cadena, el operador + actúa como operador de concatenación y no como suma aritmética. Por tanto, el resultado será una nueva cadena con la concatenación de la cadena y el entero, es decir, la variable resultado será: “El resultado es: 9”.

Concatenar cadenas con el método concat() de la clase String

La segunda forma de concatenar cadenas es utilizar el método concat() de la clase String.

El método concat() ya está implementado y lo puedes utilizar con cualquier cadena, pero ¡cuidado! solo funciona con String. Si quieres concatenar cadenas con datos primitivos tendrás que hacer un cambio de tipo. No te preocupes que ahora te cuento cómo hacerlo.

Vamos a empezar por lo más fácil, concatenar dos cadenas con concat(). Mira el siguiente ejemplo:

String cad1 = "Hola";
String cad2 = "Mundo";

String resultado = cad1.concat(cad2);

System.out.println(resultado);

He declarado 2 cadenas: cad1 y cad2 (líneas 1 y 2). Las 2 son de tipo String, por tanto, puedo utilizar concat(). Si te fijas, en la línea 4 utilizo el objeto cad1 para llamar a concat() con el operador punto (.): cad1.concat(). Lo que estoy indicando es que quiero concatenar cad1 con otra cadena ¿Cuál? la que le paso a concat() como parámetro, es decir, entre los paréntesis: concat(cad2).

Ni cad1 ni cad2 se modifican durante este proceso. Recuerda que los objetos String son inmutables. El método concat() genera una nueva cadena con la concatenación de cad1 y cad2. El resultado se almacena en la variable resultado que tendrá valor “HolaMundo”.

¿Y si quiero el espacio? Pues utilizamos otra vez concat():

String resultado = cad1.concat(" ").concat(cad2);

Puedes utilizar el método todas las veces que sea necesario. Recuerda que concat() devuelve una cadena, por tanto, la siguiente concatenación se hará a partir de esa cadena resultante.

¿Y qué pasa con los datos que no son cadenas? Pues que no se pueden utilizar con concat(). Si quieres concatenar una cadena y un dato primitivo tendrás que convertir el segundo en cadena primero, sino te dará error.

Mira este código:

int num1 = 5;
int num2 = 4;
int suma = num1 + num2;

String resultado = "El resultado es: ".concat(suma);

System.out.println(resultado);

Si te fijas, intento concatenar la cadena “El resultado es: “ con la variable suma que es de tipo int. Al ejecutar se producirá un error como este:

error: incompatible types: int cannot be converted to String

Se queja porque concat espera como parámetro un String pero le estoy pasando un int. ¿Cómo lo soluciono? Convirtiendo el int a String antes de pasarlo a concat:

String resultado = "El resultado es: ".concat(String.valueOf(suma));

En este caso utilizo String.valueOf(suma) como parámetro de concat(). El método valueOf() de String convierte cualquier dato que reciba como parámetro a String. En este caso la variable suma, que es de tipo int. Una vez convertido a String ya se lo puedo pasar tranquilamente a concat().

Si lo ejecutas ahora verás que no se produce ningún error y la cadena resultante será “El resultado es 9”.

Los comentarios están cerrados.

Subir ↑