前言
适用情形:
在写接口的过程中有时候前端传来一个地域字符串,需要接口把地域字符串下级地域抽取出来。
eg1,
原始地域记录:江苏省苏州市姑苏区
前端传入字符串:江苏省
输出要求:苏州市
eg2,
原始地域记录:江苏省苏州市姑苏区
前端传入字符串:苏州市
输出要求:姑苏区
eg3,
原始地域记录:新疆XXX自治州XXX县
前端传入字符串:新疆
输出要求:XXX自治州
1.抽取原理:
用前端传入的字符串对地域进行字符串数组分割,再进行二级城市判定和分离抽取。
2.贴代码
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ExtractArea {
public static void main(String[] agrs) {
String region = "江苏省苏州市";
String area = "苏州市";
System.out.println(explainArea(region,area));
}
private static String explainArea(String region, String area) {
String[] city = region.split(area);
String town = "";
if (city.length == 3) {
town = city[2];
}
else if (city.length == 2) {
String temp = city[1];
String areaName = "[市|区|盟]";
Pattern pattern = Pattern.compile(areaName);
Matcher matcher = pattern.matcher(temp);
if (matcher.find()) {
int end = matcher.end();
town = temp.substring(0, end);
System.out.println(town);
}
if (temp.contains("自治州")) {
int a = temp.lastIndexOf("州");
town = temp.substring(0, a + 1);
}
}
return town;
}
}
3.explainArea 是抽取函数,主要是为了二级城市的判定,二级城市就只有几种情况,XX市,XX区,XX盟(内蒙古),XX自治州(新疆)
4.Test
explainArea(“江苏省苏州市”, “江苏省”) —> 苏州市
explainArea(“江苏省苏州市”, “苏州市”) —> (空白字符)
explainArea(“江苏省苏州市虎丘区”, “苏州市”) —>虎丘区
explainArea(“内蒙古新安盟阿尔山市”, “内蒙古”) —>新安盟
5.本程序适用面比较窄,适合前端展示下级城市的统计数据。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/16642.html