Menu
Coddy logo textTech

復習 - ユーザープロフィールのバリデーター

CoddyのRustジャーニー「Logic & Flow」セクションの一部 — レッスン 65/66。

challenge icon

チャレンジ

簡単

ユーザープロファイルを表す3つの入力を受け取ります。最初の入力はユーザー名、2番目は年齢、3番目はメールアドレスです。以下のルールに従ってプロファイルを検証し、適切なメッセージを出力してください。

検証ルール:

  • ユーザー名は少なくとも3文字以上であること
  • 年齢は13から120の間(両端を含む)であること
  • メールアドレスには @ 記号が含まれていること

要件:

  • ユーザー名の入力を読み取り、空白をトリミングする
  • 年齢の入力を読み取り、空白をトリミングして i32 にパースする
  • メールアドレスの入力を読み取り、空白をトリミングする
  • ユーザー名の長さが少なくとも3文字以上かチェックする
  • 年齢が13から120の範囲内かチェックする(範囲指定の match を使用すること)
  • メールアドレスに @ 文字が含まれているかチェックする(.contains() メソッドを使用すること)
  • すべての検証を通過した場合は、Valid profile と出力する
  • ユーザー名が短すぎる場合は、Invalid username と出力する
  • 年齢が範囲外の場合は、Invalid age と出力する
  • メールアドレスに @ が含まれていない場合は、Invalid email と出力する
  • 検証は、ユーザー名、年齢、メールアドレスの順序でチェックすること

入力:

  • 1行目: ユーザー名 (例: alice123)
  • 2行目: 年齢 (例: 25)
  • 3行目: メールアドレス (例: alice@example.com)

出力:

  • Valid profileInvalid usernameInvalid age、または Invalid email のいずれか1つ

自分で試してみよう

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: プロフィールを検証するためのコードを以下に記述してください
    // ユーザー名の長さ、年齢の範囲、メールの形式を確認します
    // 検証結果に基づいて適切なメッセージを表示します
    
}

Logic & Flowのすべてのレッスン