Repaso - Validador de perfiles de usuario
Parte de la sección Logic & Flow del Journey de Rust de Coddy. Lección 65 de 66.
Desafío
FácilRecibirás tres entradas que representan un perfil de usuario. La primera entrada es un nombre de usuario, la segunda es una edad y la tercera es una dirección de correo electrónico. Valida el perfil de acuerdo con las siguientes reglas e imprime el mensaje correspondiente:
Reglas de validación:
- El nombre de usuario debe tener al menos 3 caracteres de longitud
- La edad debe estar entre 13 y 120 (inclusive)
- El correo electrónico debe contener el símbolo
@
Requisitos:
- Lee la entrada del nombre de usuario y elimina los espacios en blanco (trim)
- Lee la entrada de la edad, elimina los espacios en blanco y conviértela (parse) a
i32 - Lee la entrada del correo electrónico y elimina los espacios en blanco
- Comprueba si la longitud del nombre de usuario es de al menos 3 caracteres
- Comprueba si la edad está en el rango de 13 a 120 (usa
matchcon rangos) - Comprueba si el correo electrónico contiene el carácter
@(usa el método.contains()) - Si todas las validaciones pasan, imprime:
Valid profile - Si el nombre de usuario es demasiado corto, imprime:
Invalid username - Si la edad está fuera de rango, imprime:
Invalid age - Si el correo electrónico no contiene
@, imprime:Invalid email - Verifica las validaciones en orden: primero el nombre de usuario, luego la edad y después el correo electrónico
Entrada:
- Primera línea: Un nombre de usuario (por ejemplo,
alice123) - Segunda línea: Una edad (por ejemplo,
25) - Tercera línea: Una dirección de correo electrónico (por ejemplo,
alice@example.com)
Salida:
- Uno de los siguientes:
Valid profile,Invalid username,Invalid ageoInvalid email
Pruébalo tú mismo
use std::io;
fn main() {
// Leer la entrada del nombre de usuario
let mut username = String::new();
io::stdin().read_line(&mut username).expect("Failed to read line");
let username = username.trim();
// Leer la entrada de la edad
let mut age_input = String::new();
io::stdin().read_line(&mut age_input).expect("Failed to read line");
let age: i32 = age_input.trim().parse().expect("Failed to parse age");
// Leer la entrada del correo electrónico
let mut email = String::new();
io::stdin().read_line(&mut email).expect("Failed to read line");
let email = email.trim();
// TODO: Escribe tu código a continuación para validar el perfil
// Comprobar la longitud del nombre de usuario, el rango de edad y el formato del correo electrónico
// Imprimir el mensaje apropiado basado en los resultados de la validación
}Todas las lecciones de Logic & Flow
1Flujo de control avanzado
La expresión 'match'Coincidencia de múltiples valoresCoincidencia de rangosLa expresión 'if let'Bucles como expresionesResumen - Analizador de comandos simple4Agrupando datos con Structs
¿Qué es un Struct?Visión general de los StructsAcceso a los campos de un StructStructs mutablesStructs como parámetros de funcionesStructs de tuplaResumen - Crear un Struct de Libro7Manejo de errores con 'Result'
¿Qué es un 'Result'?Uso de 'match' con 'Result'is_ok() e is_err()Atajos: unwrap y expectEl operador de signo de interrogación '?'Parsing de Strings a númerosResumen - Función de división segura10Closures y funciones anónimas
¿Qué es un Closure?Definir un Closure simpleClosures con parámetrosCapturar el entornoResumen - Closure sumador simple2Introducción a los vectores
¿Qué es un vector?Crear un vectorAñadir elementos con pushAcceder a los elementos de un vectorIterar sobre un vectorIteración mutableEliminar elementosResumen: Rastreador de puntuación básico5Pares clave-valor con Hash Maps
¿Qué es un Hash Map?Crear un Hash MapInsertar pares clave-valorAcceder a los valoresIterar sobre un Hash MapActualizar un valorEliminar un parRepaso: Contador de palabras8Proyecto: Inventario simple de artículos
Configuración del proyectoAgregar un artículoVerificar el stockVender un artículoUniendo todo11Desafíos finales
Repaso - Elementos únicosRepaso - Validador de perfiles de usuarioRepaso - Resumidor de calificaciones3Lista de tareas en la línea de comandos
Configuración del proyectoAñadir una tareaVer todas las tareasEliminar una tareaCódigo finalPractica por tu cuenta: Compilador de Rust online