第一次个人编程作业
| PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
|---|---|---|---|
| Planning | · 计划 | 30 | 30 |
| · Estimate | · 估计这个任务需要多少时间 | 999 | 1000 |
| Development | · 开发 | 120 | 180 |
| · Analysis | ·需求分析(包括学习新技术) | 100 | 500 |
| · Design Spec | · 生成设计文档 | 10 | 20 |
| · Design Review | · 设计复审 | 5 | 5 |
| · Coding Standard | · 代码规范(为目前的开发制定合适的规范) | 10 | 10 |
| · Design | · 具体设计 | 20 | 15 |
| · Coding | · 具体编码 | 100 | 100 |
| · Code Review | · 代码复审 | 15 | 10 |
| · Test | · 测试(自我测试,修改代码,提交修改) | 20 | 10 |
| Reporting | · 报告 | 20 | 15 |
| · Test Repor | · 测试报告 | 10 | 10 |
| · Size Measurement | · 计算工作量 | 5 | 10 |
| · Postmortem & Process Improvement Plan | · 事后总结,并提出过程改进计划 | 10 | 20 |
| ·合计 | 1464 | 1935 |
- 解题思路:
- 先根据"!"对文本进行分级处理
- 根据","将姓名与地址分割开
- 使用正则表达式将电话号码取出
- 使用正则表达式根据省、市、县(区)等进行分割
- 关键代码:
//手机号码
Pattern pattern = Pattern.compile("((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(18[0,5-9]))\\d{8}");
Matcher a = pattern.matcher(nameOrAddress[1]);
//县市区
String regex = "(?<province>[^省]+自治区|.*?省|.*?行政区|.*?市)(?<city>[^市]+自治州|.*?地区|.*?行政单位|.+盟|市辖区|.*?市|.*?县)(?<county>[^县]+县|.+区|.+市|.+旗|.+海域|.+岛)?(?<town>[^区]+区|.+镇)?(?<village>.*)";
Matcher m = Pattern.compile(regex).matcher(unitname);
- 工具类
| 类名 | 作用 |
|---|---|
| FileUtil | 读取和写入文件 |
| JsonUtils | Json类 |
- 主要函数
| 函数名 | 作用 |
|---|---|
| List<Map<String, String>> addressResolution(List |
进行一系列内容的分割处理,返回List |
| void checkCellphone(String str) | 切去电话号码 |
- 单元测试

- 性能测试




- 个人总结
- 之前没有写过java,ddl太紧加上编译器莫名各种踩坑暴毙,整个开发进展很不顺利。
- 技术助教讲的一大堆没听说过nbsl的名词也听不懂,云里雾里无形之中给想要学习技术的新手增添了很多压力,还没开始就已经自闭。有一说一希望助教大佬(@ymz)能够帮助同学学习,解决同学的困惑或是推荐一些好的学习博客而不是给同学产生问题并带来更多的压力,除了coding以外在配合评测工具上消耗了过多的时间(虽然到最后我也不知道怎么用)。
- 说实话这次作业整个过程体验很差,一直在赶deadline中进行,做出来的东西还不完整,看着大佬在群里各种让人百脸懵逼的操作仿佛是在劝退我这种菜🐔,面向需求面向百度到最后也说不出自己实实在在掌握了什么东西。
- 还是怪自己太菜,希望能尽快加快学习的速度,赶上大佬的水平。

浙公网安备 33010602011771号