Strings En Kotlin

En este tutorial verás la definición, declaración y uso de Strings en Kotlin con el fin de representar texto como tipo básico en tus aplicaciones.

El Tipo String

La clase String es la que representa a los strings Kotlin con el fin de tratar texto en nuestros programas.

class String : Comparable<String>, CharSequence

Cada literal String de a forma "cadena" es creado como una instancia de la clase. Por lo que solo basta con usar las comillas dobles para encerrar múltiples caracteres que representen el String deseado:

val customerName:String = "Claudia Martinez"
val customerName = "Claudia Martinez" // Puedes omitir el tipo

Caracteres De Un String

Debido a que String implementa la interfaz CharSecuence, es posible interpretar el conjunto como una secuencia de elementos Char.

Esto te permitirá leer los caracteres en sus posiciones a través de get() o su operador equivalente de acceso en corchetes string[indice]:

println(customerName[5])
println(customerName.get(5))

También es posible recorrerlos a través del bucle for:

for(char in customerName){
    print(char)
}

Incluso usar la propiedad de extensión indices para obtener el rango de índices que sirvan de referencia en el bucle for:

for (index in customerName.indices) {
    println(customerName[index])
}

Si quieres saber el tamaño de la secuencia de caracteres, accede a la propiedad miembro length del string.

println(customerName.length) // 16

Concatenar Strings En Kotlin

Para crear la combinación de varios valores en un solo String, usa el operador de adición + como herramienta de concatenación.

Este te permite generar una nueva cadena entre un String y otro tipo de la siguiente forma:

// Concatenación
val a = "José" + " Monteria"
val b = "Cantidad de ahorros: " + 536.4
val c = "Resultado: " + (2 + 4)

Puedes usar a combinación de variables o literales si así lo deseas. Incluso puedes usar el operador de asignación y adición en su forma simplificada:

var d = "Nueva concatenación"
d += '!'// "Nueva concatenación!"

Strings Con Múltiples Líneas

En ocasiones es necesario crear literales de String que posean múltiples líneas y que sean interpretadas en su forma plana (raw strings).

Esto puedes lograrlo usando la sintaxis de triple doble comillas (""") para encerrar el conjunto de caracteres.

fun main() {
    // raw string
    val welcomeText = """
        ¡Bienvenido a la guía de Kotlin de develou.com!
        En esta serie de tutoriales aprenderás 
        los conceptos básicos sobre el lenguaje
        y las herramientas necesarias para probarlo
    """
    println(welcomeText)
}

Salida:


        ¡Bienvenido a la guía de Kotlin de develou.com!
        En esta serie de tutoriales aprenderás 
        los conceptos básicos sobre el lenguaje
        y las herramientas necesarias para probarlo

Como ves, la construcción del String con múltiples líneas conserva la sangría y espacios de origen.

Para eliminarlos usa la función trimMargin(), la cual usa como referencia el prefijo '|' como delimitador de las márgenes:

fun main() {
    // raw string
    val welcomeText = """
        |¡Bienvenido a la guía de Kotlin de develou.com!
        |En esta serie de tutoriales aprenderás 
        |los conceptos básicos sobre el lenguaje
        |y las herramientas necesarias para probarlo
    """.trimMargin()
    println(welcomeText)
}

Salida:

¡Bienvenido a la guía de Kotlin de develou.com!
En esta serie de tutoriales aprenderás 
los conceptos básicos sobre el lenguaje
y las herramientas necesarias para probarlo

Plantillas De Strings En Kotlin

En Kotlin es posible crear expresiones interpoladas sobre Strings o también conocidas como la sintaxis de plantillas de Strings (String Templates).

La interpolación te permite concatenar literales junto a fragmentos de expresiones antecedidas por el símbolo '$'. Hay dos formas de hacerlo:

  • $id, donde id es un identificador simple
  • ${e}, donde e es una expresión valida en Kotlin

Veamos un ejemplo de un identificador simple:

fun main() {
    val playerName = "NKiller"
    println("Tu nuevo nombre es $playerName")
}

Salida:

Tu nuevo nombre es NKiller

Como ves, el fragmento interpolado $playerName es convertido a String y el resultado final es la concatenación de todos los fragmentos.

En el caso de las expresiones, debes usar llaves ({}) para encerrar la expresión. De esa forma el resultado sigue el mismo de conversión a String y es aplicado a la concatenación final:

fun main() {

    println("Tamaño del nick:${playerName.length}")
}

Salida:

Tamaño del nick:7

La expresión final de acceso ${playerName.length} es resuelta primero accediendo al entero 7 y luego se convierte a través del método toString().

Este tipo de plantillas te permitirá incluir todo tipo de expresiones como operaciones aritméticas, acceso a métodos, ejecución de funciones, etc.

¿Estás Creando Una App De tareas?

Te comparto una plantilla Android profesional con arquitectura limpia, interfaz moderna y funcionalidades listas para usar. Ideal para acelerar tu desarrollo.

Banner de plantilla de tareas Android

Únete Al Discord De Develou

Si tienes problemas con el código de este tutorial, preguntas, recomendaciones o solo deseas discutir sobre desarrollo Android conmigo y otros desarrolladores, únete a la comunidad de Discord de Develou y siéntete libre de participar como gustes. ¡Te espero!