「Java工具類」發現一個身份證地址解析出省市區的工具類
介紹語
本號主要是Java常用關鍵技術點,通用工具類的分享;以及springboot+springcloud+Mybatisplus+druid+mysql+redis+swagger+maven+docker等集成框架的技術分享;datax、kafka、flink等大數據處理框架的技術分享。文章會不斷更新,歡迎碼友關注點贊收藏轉發!
望各位碼友點擊關注,沖1000粉。后面會錄制一些視頻教程,圖文和視頻結合,比如:圖書介紹網站系統、搶購系統、大數據中臺系統等。技術才是程序猿的最愛,碼友們沖啊
如果碼友覺得代碼太長,可以從頭到尾快速掃射一遍,了解大概即可。覺得有用后再轉發收藏,以備不時之需。
正文:
為了做一些地域性的統計,接到一個需求,根據身份證地址解析出省市區地址,想到兩種方案,一種是根據省市區三個字進行地址截取,一種是用正則表達式,然后百度一搜,找到了一個正則實現的工具類,這里記錄一下。
package com.javalaoniu.tool.utils;
?
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
?
/**
* 身份證地址提取省市區工具類
*/
public class AddressResolutionUtil {
?
/**
* 根據身份證地址提取省市區工具類
*
* @param address
* @return
*/
public static List<Map<String, String>> addressResolution(String address) {
String regex = "(?<province>[^省]+自治區|.*?省|.*?行政區|.*?市)(?<city>[^市]+自治州|.*?地區|.*?行政單位|.+盟|市轄區|.*?市|.*?縣)(?<district>[^縣]+縣|.+區|.+市|.+旗|.+海域|.+島)?(?<town>[^區]+區|.+鎮)?(?<detail>.*)";
Matcher m = Pattern.compile(regex).matcher(address);
String province = null, city = null, district = null, town = null, detail = null;
List<Map<String, String>> table = new ArrayList<Map<String, String>>();
Map<String, String> row = null;
while (m.find()) {
row = new LinkedHashMap<String, String>();
province = m.group("province");
row.put("province", province == null ? "" : province.trim());
city = m.group("city");
row.put("city", city == null ? "" : city.trim());
district = m.group("district");
row.put("district", district == null ? "" : district.trim());
town = m.group("town");
row.put("town", town == null ? "" : town.trim());
detail = m.group("detail");
row.put("detail", detail == null ? "" : detail.trim());
table.add(row);
}
return table;
}
?
public static void main(String[] args) {
System.out.println(addressResolution("廣東省深圳市福田區梅林街道辦事處國際金融科技大廈"));
System.out.println(addressResolution("山東省德州市禹城市倫鎮堂子街村235號"));
}
}
工具類源碼:
無
鄙人編碼十年多,在項目中也積累了一些工具類,很多工具類在每個項目都有在用,很實用。大部分是鄙人封裝的,有些工具類是同事封裝的,有些工具類已經不記得是ctrl+c的還是自己封裝的了,現在有空就會總結項目中大部分的工具類,分享給各位碼友。如果文章中涉及的代碼有侵權行為請通知鄙人處理。
計劃是先把工具類整理出來,正所謂工欲善其事,必先利其器。項目中不管是普通單體項目還是多模塊maven項目或是分布式微服務,一部分功能模塊都是可以重用的,工具類模塊就是其中之一。

浙公網安備 33010602011771號