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,真是感觉太懵了。只能疯狂百度和寻找帮助=.= 感觉太仓促了时间,太短了。以后一定要好好读书!

posted on 2019-09-17 21:58  °LL  阅读(156)  评论(5编辑  收藏  举报