1.Github项目地址
2.PSP表格
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟 |
Planning | 计划 | 100 | 60 |
· Estimate | · 估计这个任务需要多少时间 | 1775 | 2145 |
Development | 开发 | 300 | 450 |
· Analysis | · 需求分析 (包括学习新技术) | 210 | 240 |
· Design Spec | · 生成设计文档 | 60 | 70 |
· Design Review | · 设计复审 | 30 | 40 |
· Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 35 | 45 |
· Design | · 具体设计 | 150 | 200 |
· Coding | · 具体编码 | 660 | 750 |
· Code Review | · 代码复审 | 60 | 75 |
· Test | · 测试(自我测试,修改代码,提交修改) | 30 | 45 |
Reporting | 报告 | 45 | 60 |
· Test Repor | · 测试报告 | 30 | 30 |
· Size Measurement | · 计算工作量 | 20 | 30 |
· Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 45 | 50 |
· 合计 | 1775 | 2145 |
3.解题思路描述
(1)解题思路
- 首先,先读取文件中内容;
- 然后,再将姓名进行分割;
- 然后,将字符中连续的11位数字(即电话号码)进行分割;
- 接着通过正则表达式进行地址解析,将地址按级分割。
- 找资料:百度和他人博客。
(2)代码实现以及关键代码
类名 | 作用 |
AddressResolveUtils | 地址解析 |
UserBean | 提取姓名和电话号码 |
ContentUtil | 输入输出部分 |
private static Map<Integer, String[]> maps = new HashMap<Integer, String[]>() //筛选 private static String[] suffixs //判断是否包含省级地区 for(Map.Entry<Integer, String[]> entry : maps.entrySet()) //过滤 private static String restructure(String address, String $suffix, String s) //拼接
String regex="(?<province>[^特别行政区]+特别行政区|[^自治区]+自治区|[^省]+省|[^市]+市)(?<city>省直辖行政单位|省属虚拟市|市辖县|市辖区|县|自治州|[^地区]+地区|[^州]+州|[^盟]+盟|[^市]+市|[^区]+区|)?(?<county>[^旗]+旗|[^市]+市|[^区]+区|[^县]+县)?(?<town>[^县]+县|[^区]+区|[^乡]+乡|[^村]+村|[^镇]+镇|[^街道]+街道)?(?<village>.*)";
ArrayList<UserBean> resultList = new ArrayList<>(); for (String data : splitData) //解析姓名电话部分
public static String readStringData() { String encoding = "UTF-8";}
(3)性能测试
(4)计算模块部分异常处理
①转化为json的时候,一开始不能很好的展示出json的格式;
②解决无法处理没有出现具体字的情况。
(5)单元测试,代码覆盖率
(6)输入输出样例
输入
输出
4.心路历程
真的是太难太难太难了,没有事先自学过Java,真是感觉太懵了。只能疯狂百度和寻找帮助=.= 感觉太仓促了时间,太短了。以后一定要好好读书!