スマート連絡先管理
CoddyのGDScriptジャーニー「ロジックとフロー」セクションの一部。レッスン 76/78。
チャレンジ
中級連絡先のリストを整理します。プログラムは整数 n を読み取り、続けて n 行を読み取ります。各行は連絡先で、名前、メールアドレス、電話番号がカンマで区切られています(各行にはカンマがちょうど2つあります)。
連絡先を順番に確認します:
- メールアドレスを小文字にし、電話番号から数字だけを残します:
(555) 123-4567は5551234567になります - メールアドレスが有効でない場合、その連絡先をスキップします。有効なメールアドレスには
@と.が含まれ、空白は含まれません - 電話番号の数字がちょうど
10桁でない場合、その連絡先をスキップします - 以前に残した連絡先とメールアドレスまたは電話番号(整理後)が同じ場合、その連絡先をスキップします
残した連絡先をそれぞれ別の行に出力します:名前、 | 、メールアドレス、 | 、電話番号の数字。最後に、Contacts kept: 、残した連絡先の数、 of 、n を出力します。
次の入力の場合:
3
John Doe,JOHN@email.com,123-456-7890
Jane Doe,jane@email.com,123.456.7890
Bob Smith,invalid.email,12345出力は次のとおりです:
John Doe | john@email.com | 1234567890
Contacts kept: 1 of 3Jane は電話番号の数字が John と同じなのでスキップされ、Bob はメールアドレスに @ がなく、電話番号も短すぎるためスキップされます。
自分で試してみよう
extends Node
func _ready():
var n := int(OS.read_string_from_stdin())
# n 件の連絡先を読み込み、整理して、残す連絡先を出力する
pass
ロジックとフローのすべてのレッスン
自分で練習してみよう: GDScriptオンラインコンパイラ