Cadenas y plantillas de cadena en Kotlin

En este post voy a explicar el tipo de dato de cadena o String en Kotlin. También voy a mostrar cómo declarar cadenas multilínea o cadenas raw, y cómo usar las templates de cadena.

Cadenas en Kotlin

Para definir una cadena dejamos que el compilador lo infiera:

var nombre = "Luis"

O nosotros lo indicamos:

var nombre : String

Una cadena se declara con las comillas dobles; no se puede declarar con las comillas simples.

Cadenas multilínea

Una cosa que Kotlin permite (a diferencia de Java) son las cadenas de múltiples líneas, también llamadas cadenas raw o raw strings. Las mismas son definidas con 3 comillas dobles.

Con las cadenas multilínea se pueden crear cadenas que abarcan varias líneas.

Personalmente uso estas cadenas para escribir consultas SQL, por ejemplo:

val consulta = """select coalesce(sum(ingresos.monto), 0) as total, categorias.categoria from ingresos
                  inner join categorias on ingresos.idCategoria = categorias.id
                  where ingresos.fecha between ? and ?
                  group by ingresos.idCategoria order by total desc limit 3"""

Estas cadenas se comportan igualmente como las cadenas raw de Python; si se ponen saltos de líneas o tabulaciones las mismas se respetarán.

Plantillas de cadena con $

Otra maravillosa cosa de las cadenas de Kotlin son las plantillas de cadena o string templates; que permiten colocar valores dentro de las mismas pero sin concatenar.

Normalmente, para saludar a un usuario, haríamos esto:

val nombre = "Luis Cabrera"
val saludo = "Hola, " + nombre + " ¡mucho gusto!"
println(saludo)

Pero en Kotlin, gracias a las plantillas de cadena, podemos usar $valor dentro de la cadena, o ${expresión} por ejemplo:

val nombre = "Luis Cabrera"
val edad : Int = 11
val cadena = """
	Hola mundo, mi nombre es $nombre
	tengo ${edad * 2} años
	y me gusta programar en Kotlin
	"""
println(cadena)

De esta manera podemos concatenar y además evaluar expresiones (incluso llamadas a funciones) dentro de las cadenas.

Las plantillas de cadena funcionan en las cadenas normales y también en las de múltiples líneas; me recuerdan a las template strings de JavaScript.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *