Lectura de datos por consola con readLine() en Kotlin

Clase 8 de 35Curso de Kotlin

Resumen

La habilidad para leer datos por consola es clave al desarrollar programas interactivos en Kotlin. Dominar el método readLine() permite capturar entradas de usuario proporcionando flexibilidad en la ejecución del código.

¿Qué es y cómo funciona readLine() en Kotlin?

Kotlin ofrece el método readLine() para capturar entradas del usuario desde la consola en forma de strings que permiten valores nulos. Al invocarlo, el programa espera a que el usuario digite la información y presione enter, generando así una interacción dinámica. Por ejemplo, si se espera capturar un correo electrónico, la instrucción sería la siguiente:

print("Ingresa tu email: ")
val email = readLine()
println("Tu email es $email")

Es importante destacar que si el usuario simplemente presiona enter, readLine() devolverá un valor vacío, representado por un salto de línea ("\n"), pero no generará un valor nulo. Para obtener un valor nulo explícito, el usuario deberá generar una señal de fin de archivo (Ctrl+D en entornos Unix/Linux o Command+D en Mac).

¿Cómo utilizar valores por defecto al recibir datos nulos?

Ante la posibilidad de recibir entradas nulas, Kotlin ofrece operadores como el Elvis Operator (?:) para asignar valores por defecto. Por ejemplo:

val destinatario = readLine() ?: "sin email"
val asunto = readLine() ?: "sin asunto"

Este concepto fortalece tu código asegurando siempre un valor funcional a pesar de valores indefinidos proporcionados por el usuario.

¿Cómo limpiar y manipular cadenas de caracteres en Kotlin?

Al recibir cadenas desde la consola, es útil facilitar su manipulación y limpieza mediante funciones como trim(). Esto elimina espacios innecesarios al inicio y fin del string:

val mensajeSinLimpiar = readLine()
val mensajeLimpio = mensajeSinLimpiar?.trim()

Es necesario utilizar el operador de llamado seguro (?.) debido a que la cadena original podría ser nula.

¿Cómo construir una vista previa de los datos ingresados?

Finalmente, puedes presentar al usuario los datos recopilados de forma sencilla y organizada:

println("Vista previa de email")
println("De: $email")
println("Para: $destinatario")
println("Asunto: $asunto")
println("Mensaje: $mensajeLimpio")

Esta práctica favorece la verificación de los datos ingresados antes de continuar con otras acciones del programa.

Anímate a poner en práctica estos conceptos y comenta cómo fue tu experiencia usando la consola para leer datos con Kotlin.