能用java基础语法(变量、数组、循环、条件、方法、scanner)实现功能完整的控制台通讯录,核心用二维字符串数组存联系人,count记录数量,配合while-switch菜单驱动各功能。

用 Java 基础语法(变量、数组、循环、条件、方法、Scanner)就能写出一个功能完整的控制台通讯录,不需要集合类或面向对象高级特性,适合初学练习。
数据结构:用二维字符串数组存联系人
每个联系人占一行,字段按顺序为姓名、电话、邮箱(可为空),例如:
Java项目代码review工具。分析Git变更+完整调用链路上下文,推断业务需求,进行多维度评分和分类汇总,生成完整PRD文档。包含细粒度Java代码审查清单(Null安全、异常处理、Streams、并发、equals/hashCode、资源管理、API设计、性能、MyBatis/ORM、事务边界、SQL/DD...
第 i 条记录:
contacts[i][0] → 姓名
contacts[i][1] → 电话
contacts[i][2] → 邮箱
用一个整数 count 记录当前已存条数,避免遍历整个数组。
核心功能拆解与实现要点
- 添加联系人:检查 count 是否超限;读入三字段,空邮箱可直接回车跳过;存入 contacts[count] 后 count++
- 查看全部:for 循环从 0 到 count-1,只打印非 null 的姓名行(防未初始化项乱显)
-
按姓名查找:遍历 contacts[0..count),用
name.equals(contacts[i][0])匹配(注意判空) - 删除联系人:找到后,用后面所有元素前移覆盖(for 循环从 i 到 count-2),再 count--
- 退出程序:用 break 跳出主循环即可
交互流程:用 while + switch 搭建主菜单
用 Scanner 读取用户输入的数字选项,switch 分支调用对应功能方法。示例骨架:
int choice;while (true) {
System.out.println("1.添加 2.查看 3.查找 4.删除 0.退出");
choice = sc.nextInt(); sc.nextLine(); // 吃掉换行符
switch (choice) {
case 1: addContact(); break;
case 2: listAll(); break;
case 3: searchByName(); break;
case 4: deleteByName(); break;
case 0: System.out.println("再见"); return;
default: System.out.println("无效选项");
}
}
实用小技巧提升健壮性
- 所有 Scanner 输入后加
sc.nextLine(),防止 nextInt() 留下的换行干扰后续 nextLine() - 查找/删除前先判断 count == 0,提示“通讯录为空”再返回
- 显示联系人时,用
String.format("%-10s %-12s %-20s", name, phone, email)对齐列宽 - 删除失败时明确提示“未找到该姓名”,避免用户误以为操作没响应
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










