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 final