|
@@ -462,8 +462,9 @@ public class AddressTools {
|
|
|
}
|
|
|
|
|
|
// 去除多余的空白字符
|
|
|
- address = address.trim();
|
|
|
-
|
|
|
+ address = address.replaceAll(" ", "");
|
|
|
+ // 去除街镇
|
|
|
+ address = AddressQueryEngine.townReplaceAll(address);
|
|
|
result[1] = foundDistrict;
|
|
|
result[2] = foundStreet;
|
|
|
result[3] = foundVillageOrCommunity;
|
|
@@ -502,17 +503,19 @@ public class AddressTools {
|
|
|
for (String addr2str : address2String) {
|
|
|
if (addressString.contains(addr2str)) {
|
|
|
addressStrSize--;
|
|
|
- if (addressNumber.size() == 0) {
|
|
|
- obj.put("总分", "rule_4");
|
|
|
- return obj;
|
|
|
- } else {
|
|
|
- int addressNumSize = addressNumber.size();
|
|
|
- for (String addr2Num : address2Number) {
|
|
|
- if (addressNumber.contains(addr2Num)) {
|
|
|
- addressNumSize--;
|
|
|
- if (addressNumSize == 0) {
|
|
|
- obj.put("总分", "rule_4");
|
|
|
- return obj;
|
|
|
+ if (addressStrSize == 0) {
|
|
|
+ if (addressNumber.size() == 0) {
|
|
|
+ obj.put("总分", "rule_4");
|
|
|
+ return obj;
|
|
|
+ } else {
|
|
|
+ int addressNumSize = addressNumber.size();
|
|
|
+ for (String addr2Num : address2Number) {
|
|
|
+ if (addressNumber.contains(addr2Num)) {
|
|
|
+ addressNumSize--;
|
|
|
+ if (addressNumSize == 0) {
|
|
|
+ obj.put("总分", "rule_4");
|
|
|
+ return obj;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -577,6 +580,28 @@ public class AddressTools {
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+ public static boolean isOtherDistrictThanSongJiang2(String address) {
|
|
|
+ // 将地址字符串转换为小写,以便进行不区分大小写的比较
|
|
|
+ String lowerCaseAddress = address.toLowerCase();
|
|
|
+ // 检查地址是否包含 "青浦区" 字样,如果不包含,则可能是其他区
|
|
|
+ // 列出上海市的其他区(已补充完整)
|
|
|
+ String[] otherDistricts = {"北京市", "天津市", "重庆市",
|
|
|
+ "河北省", "山西省", "辽宁省", "吉林省", "黑龙江省",
|
|
|
+ "江苏省", "浙江省", "安徽省", "福建省", "江西省",
|
|
|
+ "山东省", "河南省", "湖北省", "湖南省", "广东省",
|
|
|
+ "海南省", "四川省", "贵州省", "云南省", "陕西省",
|
|
|
+ "甘肃省", "青海省", "台湾省",
|
|
|
+ "内蒙古自治区", "广西壮族自治区", "西藏自治区",
|
|
|
+ "宁夏回族自治区", "新疆维吾尔自治区",
|
|
|
+ "香港特别行政区", "澳门特别行政区"};
|
|
|
+ for (String district : otherDistricts) {
|
|
|
+ if (lowerCaseAddress.contains(district.toLowerCase()) || lowerCaseAddress.indexOf(district.substring(0, 2)) == 0) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
public static String isOtherDistrictThanShangHai(String address) {
|
|
|
// 将地址字符串转换为小写,以便进行不区分大小写的比较
|