Menu
CoddyTech

回顾:用户资料验证器

本课属于 Coddy Rust 学习旅程的“逻辑与流程”单元。第 65 课,共 66 课。

challenge icon

挑战

简单

你会收到代表用户个人资料的 3 个输入。第一个输入是用户名,第二个是年龄,第三个是电子邮件地址。请按照以下规则验证个人资料,并打印相应的消息:

验证规则:

  • 用户名长度至少为 3 个字符
  • 年龄必须在 13 到 120 之间(含边界值)
  • 电子邮件必须包含 @ 符号

要求:

  • 读取用户名输入并去除空白字符
  • 读取年龄输入,去除空白字符,并将其解析为 i32
  • 读取电子邮件输入并去除空白字符
  • 检查用户名长度是否至少为 3 个字符
  • 检查年龄是否在 13 到 120 的范围内(使用带范围的 match)
  • 检查电子邮件是否包含 @ 字符(使用 .contains() 方法)
  • 如果所有验证都通过,打印:Valid profile
  • 如果用户名太短,打印:Invalid username
  • 如果年龄超出范围,打印:Invalid age
  • 如果电子邮件不包含 @,打印:Invalid email
  • 按顺序检查验证项:先检查用户名,然后检查年龄,最后检查电子邮件

输入:

  • 第一行:用户名(例如,alice123)
  • 第二行:年龄(例如,25)
  • 第三行:电子邮件地址(例如,alice@example.com)

输出:

  • 以下其中一项:Valid profile、Invalid username、Invalid age 或 Invalid email

亲手试试

use std::io;

fn main() {
    // 读取用户名输入
    let mut username = String::new();
    io::stdin().read_line(&mut username).expect("Failed to read line");
    let username = username.trim();
    
    // 读取年龄输入
    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");
    
    // 读取邮箱输入
    let mut email = String::new();
    io::stdin().read_line(&mut email).expect("Failed to read line");
    let email = email.trim();
    
    // TODO: 在下方编写代码,验证用户资料
    // 检查用户名长度、年龄范围和邮箱格式
    // 根据验证结果输出相应的消息
    
}

逻辑与流程中的所有课

自己练习: Rust 在线编译器