|
@@ -12,9 +12,14 @@ import java.util.regex.Pattern;
|
|
|
public class AddressTools {
|
|
|
|
|
|
private static AddressTools instance = new AddressTools();
|
|
|
- private AddressTools (){};
|
|
|
- public static AddressTools getInstance(){
|
|
|
- if(instance == null) instance = new AddressTools();
|
|
|
+
|
|
|
+ private AddressTools() {
|
|
|
+ }
|
|
|
+
|
|
|
+ ;
|
|
|
+
|
|
|
+ public static AddressTools getInstance() {
|
|
|
+ if (instance == null) instance = new AddressTools();
|
|
|
return instance;
|
|
|
}
|
|
|
|
|
@@ -30,6 +35,7 @@ public class AddressTools {
|
|
|
private static final Map<String, Set<String>> DISTRICT_STREETS = new HashMap<>();
|
|
|
// 街镇下辖的村和居委
|
|
|
private static final Map<String, Set<String>> STREET_VILLAGES_COMMUNITIES = new HashMap<>();
|
|
|
+
|
|
|
static {
|
|
|
// // 松江区
|
|
|
// Set<String> songjiangStreets = new HashSet<>(Arrays.asList(
|
|
@@ -146,6 +152,7 @@ public class AddressTools {
|
|
|
));
|
|
|
STREET_VILLAGES_COMMUNITIES.put("小昆山镇", xiaokunshanCommunities);
|
|
|
}
|
|
|
+
|
|
|
static {
|
|
|
// 黄浦区
|
|
|
Set<String> huangpuStreets = new HashSet<>(Arrays.asList(
|
|
@@ -333,7 +340,7 @@ public class AddressTools {
|
|
|
/***
|
|
|
* 根据地名地址返回到村居一级分词,村居不是很准确
|
|
|
* @param address 上海市松江区车墩镇乐都村乐都路590号
|
|
|
- * @return 上海市,松江区,车墩镇,乐都村,乐都路590号
|
|
|
+ * @return 上海市,松江区,车墩镇,乐都村,乐都路590号
|
|
|
*/
|
|
|
public static String[] parseAddressCJ(String address) {
|
|
|
String[] result = new String[5];
|
|
@@ -483,6 +490,7 @@ public class AddressTools {
|
|
|
|
|
|
for (int i = 0; i < array.size(); i++) {
|
|
|
JSONObject obj = array.getJSONObject(i);
|
|
|
+ obj.put("searchAddress", address);
|
|
|
// 得到返回的地址
|
|
|
String addr = obj.getString(param);
|
|
|
// 规则4判断
|
|
@@ -502,7 +510,7 @@ public class AddressTools {
|
|
|
if (addressNumber.contains(addr2Num)) {
|
|
|
addressNumSize--;
|
|
|
if (addressNumSize == 0) {
|
|
|
- obj.put("总分","role_4");
|
|
|
+ obj.put("总分", "role_4");
|
|
|
return obj;
|
|
|
}
|
|
|
}
|
|
@@ -515,7 +523,7 @@ public class AddressTools {
|
|
|
String role2address = AddressQueryEngine.townReplaceAll(AddressQueryEngine.addressReplaceAll(addr));
|
|
|
String role2address2 = AddressQueryEngine.townReplaceAll(AddressQueryEngine.addressReplaceAll(address));
|
|
|
if (AddressQueryEngine.isNotEmptyOrBlank(role2address) && role2address.contains(role2address2)) {
|
|
|
- obj.put("总分","role_2");
|
|
|
+ obj.put("总分", "role_2");
|
|
|
return obj;
|
|
|
}
|
|
|
|
|
@@ -546,7 +554,6 @@ public class AddressTools {
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
/***
|
|
|
* 其他方法的引用方法,不用管
|
|
|
* @param input
|
|
@@ -651,7 +658,7 @@ public class AddressTools {
|
|
|
* @param address
|
|
|
* @return
|
|
|
*/
|
|
|
- public String deleteStr(String address){
|
|
|
+ public String deleteStr(String address) {
|
|
|
if (address == null) {
|
|
|
return null;
|
|
|
}
|
|
@@ -797,7 +804,7 @@ public class AddressTools {
|
|
|
private static final Pattern ADDRESS_PATTERN = Pattern.compile(ADDRESS_REGEX);
|
|
|
|
|
|
/**
|
|
|
- * 验证地址格式的正则表达式
|
|
|
+ * 验证地址格式的正则表达式
|
|
|
*/
|
|
|
public static boolean validateAddress(String address) {
|
|
|
if (address == null || address.trim().isEmpty()) {
|