復習 - ユーザープロフィールのバリデーター
CoddyのRustジャーニー「Logic & Flow」セクションの一部 — レッスン 65/66。
チャレンジ
簡単ユーザープロファイルを表す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 profile、Invalid username、Invalid 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: プロフィールを検証するためのコードを以下に記述してください
// ユーザー名の長さ、年齢の範囲、メールの形式を確認します
// 検証結果に基づいて適切なメッセージを表示します
}