智能联系人管理器
本课属于 Coddy GDScript 学习旅程的“逻辑与流程”单元。第 76 课,共 78 课。
挑战
中等清理联系人列表。程序会读取一个整数 n,然后读取 n 行。每行代表一位联系人,包含姓名、电子邮件和电话号码,各项之间用逗号分隔(每行恰好有两个逗号)。
按顺序处理联系人:
- 将电子邮件转换为小写,并且只保留电话号码中的数字:
(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 在线编译器